The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Perl или Python кого изучать?"
Отправлено BigHo, 16-Дек-08 16:08 
>>Именно для данной задачи лучше не перенаправлять стандартные выводы, а считывать через
>>popen функции: если есть вывод - открывать лог-файл, блокировать его эксклюзивной
>
>пробема в том что вы можете в своем проекте использовать кучу сторонних
>библиотек, и врядли каждый вызов в своей программе вы будете реализовывать
>через сторонний процесс.
>а в силу этого и нужно переопределение стдаута в основном процессе.

Никак не могу осознать необходимость такой схемы. Если библиотека не удовлетворяет по параметрам - наверняка ей можно найти замену. Если нужно именно эту, или альтернатива еще хуже - можно набросать серверный вариант или схему с запуском отдельного процесса. Если же все библиотеки внезапно начнут черте-что выводить в стандартный вывод, то как раз для этого случая я и держу под рукой баночку с цианидом.

>конечно это просто пример. на самом деле разделяемая память это оптимальный вариант
>обмена, лучше не бывает! можно конечно еще через пайпы и сокеты,
>но это гораздо медленне.

тесты вам бы доказали, что не намного медленней. Выигрыш не будет заметен для буферов малой протяженности: 1-2% - это не то, ради чего стоит жертвовать стабильностью программ. Конечно, есть еще интересное решение virtual ring buffer (в тему уменьшения количества операций копирования в режиме пользователя), но это уже о разделяемой памяти для одного процесса.

>если использовать триды то эквивалентно по скорости. но в данном случае я
>предлагал реализовывать взаимодействие между процессами.

Да. Прошу все же заметить, что разделение памяти несколько отличается стабильностью в худшую сторону по сравнению с другими IPC методами. Обычно разделение на процессы делают тогда, когда хотят большей защищенности адресного пространства. pthread_mutex_* не смогут защитить, если один из процессов выйдет, забыв разлочить ранее заблокированный замок. В этом случае нет разницы: что используешь многопоточность, что разделяемую память - грабли, по конфигурации набитой шишки похожи, как близнецы.

>никакие индексы нигде при работе с разделяемой памятью не перестраиваются, мне кажеться
>вы  это с чем то путаете.

Нет. Не путаю. Операции mmap/unmap могут сильно замедлить работу программы, если их использовать черезчур часто. Да на сегментацию процесса может сказаться не в лучшую сторону. Но не буду настаивать, возможно это особенности архитектуры только моей платформы.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру