2013-08-15 5 views
1

Документация Gwan утверждает, что скрипты C с использованием сокетов BSD прозрачно управляются асинхронно.Как gwan реализует асинхронные действия?

Как я могу убедиться, что данный фрагмент кода/библиотеки, который я использую в сценарии C, будет вести себя асинхронно при выполнении сетевой операции? Например, есть ли способ проверить это в журналах?

У меня был бы аналогичный запрос при выполнении ввода-вывода. Например, пример imgsz.c читает изображения с диска через ImageMagick .MagickReadImage() fonction. Работает ли эта операция чтения диска асинхронно? Или если imgsz.c пример можно переписать (например, с xbuf_frfile() и MagickReadImageBlob()?

Заранее спасибо за вашу помощь

ответ

0

Как я могу убедиться, что данный кусок кода/библиотека. ..

G-WAN обеспечивает функцию, которые будут вызваны вашим код, так что нет никакого нормального пути для разделяемых библиотек (или G-WAN C/C++, D и Objective-C скриптов), чтобы обойти эту функцию когда он включен G-WAN.

Java и C# может обойти эту функцию, потому что они используют виртуальную машину (вне сферы действия процесса G-WAN).

Я бы подобный запрос при выполнении дисковых операций ввода/вывода

К сожалению, Epoll не поддерживает дескрипторы файлов, используемых для открытия файлов диска (поддерживаются трубы и розетки).

Если проблема с задержкой на диске является проблемой, используйте ramdisk (или SSD, если вам нужно больше места, чем доступная оперативная память).

+0

Описывает ли ограничение, которое вы описываете для дискового ввода-вывода, для самого g-wan (например, для обслуживания статических файлов) или просто для доступа к файлам в сценариях C. – ehubin

+0

Это (системное) ограничение epoll, так что это для G-WAN и его скриптов. Другие механизмы позволяют файловому IO делать asynchromous, но это не имеет особого значения для сервера, такого как G-WAN, поскольку узким местом здесь является сетевой IO (а не файл IO). – Gil

 Смежные вопросы

  • Нет связанных вопросов^_^