Блогът на Амин
Всякакви мисли за живота, и дори така - справка за себе си
И така, първата радост от използването на многопоточност в Perl беше разбита от брутален рейк. ...
Сценарият, който работи доста добре на 300 нишки, умира при опит да обработи 600 нишки, въпреки факта, че завършването им е написано правилно. Нека вземем тестов скрипт като този:
Стартираме го в Linux и виждаме напълно шибан:
След дълго четене на mans и googling откриваме каква функция призовава перлата и вече на много по-ниско ниво откриваме същността на проблема във форума на съвсем друга тема: http://forum.sources.ru/ index.php? showtopic = 247550 и се възхищавайте:
системата фалира за цели 9 (!) метра RAM. Освен това, когато тази нишка завършва с pthread_exit (0); паметта не се освобождава.
Отваряме втората обвивка, стартираме скрипта от отделен потребител (така че да няма ирелевантни процеси в htop с филтър от потребител) и съзерцаваме невероятното:
Като цяло, вмъквайки паузи в скрипта, успяхме да разберем, че въпреки нишките на повикванията-> изход (0);, в края на нишката, разпределената за нея памет не се освобождава. Е, тъй като има много нишки за създаване и всеки изяжда чудовищните 9Mb, тогава с VIRT = 3Gb скриптът съвсем естествено идва до полярна лисица.Но най-лошото е, че при FreeBSD 7.3 няма такъв проблем, въпреки че консумацията на памет също е прецакана:
Разбира се, за мен е добре, че скриптът, от който се нуждая, в крайна сметка ще работи върху пърженето, но по някакъв начин такива грешки не са никак приятни, крос-платформата е влязла в путката и това е много, много лошо.
Споделя това:
Хареса това:
След навигация
Karman пише: Trolololololo. 111 едно. Винаги ли знаех? че аргументът "Всичко работи за мен КАКВО Е?" убит в нашия несъвършен свят.
И какъв никсам идва? И тогава има много от тях тук ... JunOS, Ubiquity AirOS и нов Cisco IOS - опасност? И колко спешно трябва да премина от фряк и федор към Windows-2008? Между другото, колко лесно е да използвам вградените инструменти в Windows-2008, за да объркам скрипт, който ще се свърже с базата данни, вземете списък с хардуер и портове от тук и го настройте автоматично чрез telnet/sssh за достатъчно време acl-ki на 600 парчета желязо ?
Perlovka пише: И Perl харесва mnu, въпреки че други се влюбват в лошата тема. Вече седем години като на "перлен ечемик" и полетът е нормален. Наистина има няколко задръствания, но това не е критично. Езикът е добър. Бих искал да прочета публикациите на г-н Амин за перлата на http://forum.script-coding.com/ - нещо като фокус за сценаристите. Дори въпреки големия си опит в програмирането, имам още много да науча.
Между другото, можете ли да ми кажете колко е красиво за мен да се измъкна от такова дупе с многопоточност? Досега имах идеята да взема като параметри броя на хардуерните парчета и номерата на блоковете от (0 до 6, например), а след това последователно да стартирам 6 различни процеса, всеки от които ще обновява паралелно 100 хардуерни парчета. Но това вече ще са два или три скрипта, а не един + параметър LIMIT m, n за SQL заявката. Може би има по-малко хрупкаво решение? Не искам да чакам три минути за последователно обхождане в една нишка ... Благодаря за поканата, но по някакъв начин се обръщам към форуми чисто по актуални въпроси, а това най-често са форуми на производители на софтуер и хардуер. Предпочитам да качвам и модерирам информацията си сам, без да поглеждам назад към никого и не се смятам за толкова напреднал сценарист-гуру.
Читател пише: Веднага ще ви кажа, харесвам много от прочетеното тук. Съгласен съм с много неща, но понякога се увличаш. Това вече е фанатизъм: "Между другото, колко лесно е да объркате скрипта, който се свързва с базата данни с вградени инструменти в Windows-2008, вземете списък с хардуер и портове". Има ли нещо, което ви пречи да инсталирате перла на Windows? Или друг интерпретатор? Пишете ли скриптове директно в ядрото в асемблер в bsd или fedor? 🙂 или дори двоични файлове?:) перла изглежда не е "вграден инструмент" 🙂
MaitreHuySkilometer пише: [Shabby] Обидите и личностите не са добре дошли тук. Извинете, ако можете.
Читател, ключовата дума тук е „инсталиране“. За всяко елементарно кихане трябва да инсталирам, актуализирам, поправям и доста често - рестартирам три пъти. Перла - той е в хранилищата. И основният скъпоценен камък е да, вграден инструмент. Понякога, разбира се, трябва да инсталирате модули, но за това има хранилища. И в Windows няма нищо с подобно ниво на удобство и не е близо. И през следващите пет години определено няма да се появи. Не искам да се забърквам с Windows, стигна ме до самия дроб. И между другото, ако сте започнали да говорите за асемблер и дори машинни кодове, както разбирам, нивото ви на компетентност ви позволява да оцените сложността на разработката по такъв метод? Ако е така, защо говорите за ядрото? ?
mo (u) Z пише: Не разбирам всички тези холивари: "Windows го разбра", "Linux shit" ... Нека разгледаме всичко трезво: има по-удобни за използване на nix и такива, които са по- приятно с Windows - и да нося глупости за това, което мога да направя в тази операционна система, или иначе не, няма нищо общо с обективността на данните, защото няма нищо перфектно от това, което се прави от човек, винаги ще има някои вид грешка и следователно изборът на операционни системи, езици за програмиране, интернет браузъри, стилове на облекло, жените (подчертайте според случая) завиждат директно в крайна сметка от личните предпочитания, нищо повече. Е, Амин Никса харесва, и какво от това? Например харесвам OpenSUSE и Fedora, но по-често ми се налага да работя с Windows. И никога не съм харесвал Perl като език за програмиране, въпреки че понякога се налага да кодирам в него. Предпочитам Python (някои биха го нарекли модно изявление, но аз просто обичам този език), когато става въпрос за интерпретативност. Що се отнася до компилацията, харесвам Assembler и C (и чист, а не сплескан).
- 7 мита за салса и социални танци
- 7 съвременни танцови упражнения за деца - аспекти на танца
- 10 танцови школи, където искате да изпратите детето си
- 1 Издайте произхода на източните славяни
- Magrette - Regattare Bronze Fuck Up New Zealand Ololo Watch True Made In New Zealand