| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Activeperl на Windows 7 x64 |
| Автор: Валерия 14.12.2011, 18:28 | ||
| Установила последний Perl 64-разряда на Windows 7 Проблема в том, что когда пытаюсь запустить что-то в более чем 50 потоков, оно работает-работает, а потом по непонятным причинам происходит полный crash.
Насколько я помню, когда раньше у меня была Windows 7 то такого не было, возможно из-за того что я использовала более старую (на то время) версию Perl. А на 2003 вообще всё шло всегда гладко, даже в 300 потоков. Естественно о х86 версии я вообще молчу - она тянет максимум 80 потоков, потом не хватает адресации (все-таки вы все знаете как криво реализованы потоки в Perl для Windows) |
| Автор: Pfailed 14.12.2011, 18:43 |
| У вас 50-ти ядерный процессор? Зачем вам столько потоков? |
| Автор: Валерия 15.12.2011, 11:32 | ||
Да мне много и не надо, всего-лишь 140. Сейчас довольствуюсь тем что запускаю два раза приложение по 70 потоков, но это очень неудобно, и нужно данные для обработки делить между ними... Не правильно это) Процессор двухядерный. |
| Автор: Pfailed 15.12.2011, 15:30 |
| А что в потоках происходит? Сетевые операции или рассчётные? Ни в том ни в другом случае для вашего процессора столько потоков не нужно. |
| Автор: DurRandir 15.12.2011, 17:40 |
| >криво реализованы потоки в Perl для Windows "для Windows" здесь лишнее) >столько потоков не нужно +1 |
| Автор: Валерия 15.12.2011, 17:55 |
| Операции проходят сетевые. Очень грубо говоря - авторизация и парсинг огромного сайта. Скорость при 140 потоках где-то в 1.8 раза больше чем при 70. У меня два 100mbps интернета работают одновременно (роутер Mikrotik) - поэтому канала для стольки потоков очень хватает Поэтому переживайте на этот счет. Лучше скажите возможные причины вылета Perl. Причем я заметила что x64 версия вылетает даже на 70 потоках, через некоторое время. Вернула x86 версию и в данный момент работают два скрипта по 70 потоков в каждом - не вылетает, всё стабильно работает. |
| Автор: Pfailed 15.12.2011, 18:28 | ||
| Валерия, такие вещи на потоках уже никто не пишет. Хотите синтаксической схожести с потоками - используйте Coro. Вот вам пример
С виду полный аналог threads. Достаточно заменить "use Coro" на "use threads". Но по сравнению с перловыми потоками есть много плюсов, среди которых скорость, значительно меньшее потребление памяти, реальная расшаренность данных. Но есть и свои ньюансы, про которые стоит прочитать. 1. Что такое сопрограммы; 2. Документацию Coro В винде сборка Coro от activestate какая-то нерабочая. Стоит установить через cpan -i Coro (устанавливается без бубна). |
| Автор: arto 15.12.2011, 18:33 |
| памяти хватает? |
| Автор: Валерия 15.12.2011, 18:35 | ||
Тема не о том, какую альтернативу мне нужно использовать, а о том почему может быть крэш х64 перла на windows 7 Кстати, на windows xp x64 такого креша не происходило. Добавлено @ 18:36
Хватает, у меня 8 гигабайт, я даже файл подкачки вообще отключила за ненадобностью. (не думайте что проблема из-за этого, пробывала включать - все-равно crash-ится) |
| Автор: Pfailed 15.12.2011, 19:05 |
Из-за бага </thread> А что вы хотите сделать после того как узнаете от чего он падает? Альтернатива есть уже сейчас |
| Автор: Pfailed 15.12.2011, 19:29 | ||
Покажите скрипт, думаю вы ошибаетесь. |
| Автор: alezzz 15.12.2011, 19:47 |
| Pfailed, так все-таки Coro работает под Windows? В списке пакетов ppm от ActiveState его нет. |
| Автор: Pfailed 15.12.2011, 19:57 |
| alezzz, работает. Я только что установил командой "cpan -i Coro" на perl 5.12 x 86 от ActiveState. Тот что в ppm нерабочий (во всяком случае раньше был), хотя он там есть http://code.activestate.com/ppm/Coro/ |
| Автор: Валерия 15.12.2011, 20:16 |
| Все-таки наверно по хорошему вообще на с++ переходить, а не пытаться реанимировать дохлую лошадь... Просто все-таки ресурсов перл жрет как не в себя... Уже qt creator установила, пока балуюсь простыми вещами... |
| Автор: Pfailed 15.12.2011, 20:26 |
| Может лучше интерпрайз C# или Java, а то опять с этими кривыми opensource поделками (Qt) проблем отхватите |
| Автор: Валерия 15.12.2011, 20:32 | ||
Нет! Хочу хоть в раз в жизни получать НОРМАЛЬНЫЕ ехе, которые будут работать на любой Винде, без необходимости ставить джаву или дотнет |
| Автор: Pfailed 15.12.2011, 20:51 |
| Разумно, правда нужно будет таскать со своей программой пачку dll-ок, навроде QtCore.dll, QtGui.dll и т.п. |
| Автор: Валерия 15.12.2011, 20:56 | ||
Не страшно) По идее их в этот ехе можно запихнуть и будет один файлик |
| Автор: shamber 15.12.2011, 22:06 |
| Валерия, вам говорят плюньте на треды,а вы говорите, что perl дохлый |
| Автор: Валерия 15.12.2011, 22:28 | ||
Просто я на Perl ради тредов и перешла. А раз они там дохлые, и нужно еще какие-то дополнения ставить и переписывать скрипт, то уже проще забить и постепенно переходить на другой язык. |
| Автор: Валерия 17.12.2011, 18:26 |
| Ребята, получилось за 2 дня разобраться с QT, переписала скрипт, многопоточно всё сделала, пашет отлично в 300 потоков) И работает очень-очень шустро |
| Автор: gcc 18.12.2011, 00:00 |
| ruby буби! |
| Автор: shamber 19.12.2011, 13:06 |
| Валерия, поздравляем! |