LINUX.ORG.RU

Что можно почитать о производительности скриптов на powershell?

 ,


1

1

Доброго времени суток

Сабж. Производительность скрипта перестала устраивать.

Городить костыли с распараллеливанием и очередью задач пока не хочется - те объёмы данных, что гоняет скрипт, можно обрабатывать на порядки быстрее

В языке без конвееров я бы просто накидал измерений времени в подозрительные участки Но с конвеерами часть кода может выполняться параллельно, плюс наверное нужно смотреть, как именно реализована передача данных

Что посоветуете почитать?

З.Ы. powershell в linux нафиг никому не сдался, но он есть. Так что формально не оффтопик :)

★★★★★

Что посоветуете

Посоветую не перекладывать на скриптоту задачи для которых она не подходит.

ritsufag ★★★★★
()

Производительность скрипта перестала устраивать.

а какие задачи реализуются? Может действительно стоит уйти от скриптов?

samson ★★
()
Ответ на: комментарий от router

Вендор даёт свои модули для этого языка

дык, в вянде обычно все связано, разве нельзя это все дергать из дотнета (сисярпа например), там и ide и все плюшки

оу погуглил там тааакое, шо лучше и не пытаться

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)

Целевой язык скриптоты какой? Если сирешетка - да хоть yourkit профайлер бери. А так - ну можно до QueryPerformanceCounter дойти, но оно тебе надо? Ты проблему подробнее опиши, АТО выглядит как заход «не с той стороны».

cnupm
()
Ответ на: комментарий от Deleted

Только си мне и не хватало для полного счастья :)

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

router ★★★★★
() автор топика
Ответ на: комментарий от cnupm

Целевой язык скриптоты какой?

Моя твоя не понимай. powershell. он и есть язык

А так - ну можно до QueryPerformanceCounter дойти, но оно тебе надо?

Надо

Ты проблему подробнее опиши, АТО выглядит как заход «не с той стороны».

Скрипт работает пипец как медленно для такого объёма обрабатываемых данных. Значит, я неправильно его использую ( печальный вариант пока отложим ). Чтобы исправить, мне нужна теория по матчасти, или хотя бы способ профилирования для случая, когда куски кода выполняются как бы параллельно и обмениваются данными через типа конвееры

router ★★★★★
() автор топика
Ответ на: комментарий от Deleted

В связанных темах всё есть. VMware PowerCli, для получения метрик производительности из vSphere

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

Ну т.е. как тормозит. Сейчас proof-of-concept свою задачу решает. Но если я захочу вытащить больше параметров в систему мониторинга, мне перестанет хватать времени

router ★★★★★
() автор топика
Последнее исправление: router (всего исправлений: 2)

производительности скриптов

Мухахах

anonymous
()

В языке без конвееров я бы просто накидал измерений времени в подозрительные участки Но с конвеерами часть кода может выполняться параллельно

Если скрипт работает под оффтопиком, то не уверен, что что-то там выполняется параллельно. Насколько мне известно, со времён DOS и до последнего времени конвееры там выполнялись примерно так: одна программа полностью отработала, поместив свой вывод во временный буфер/файл, после чего этот буфер/файл передаётся др. программе и т. д. Впрочем, касательно самых последних версий винды ничего сказать не могу. У меня есть набор скриптов, которые под Linux'ом выполняются 5 мин., а под Wiondows - 30 минут. Меня, правда, производительность не беспокоит: лишь бы укладывались в 8 часов. :-) Если существует PowerShell под Linux, то это легко проверить, запустив тот же скрипт под онтопиком.

aureliano15 ★★
()
Ответ на: комментарий от router

Моя твоя не понимай. powershell. он и есть язык

Он шелл - чо ты там вытянул через комоподобие - чёрт знает. Period.

Надо

Не, гарантирую.

или хотя бы способ профилирования

Ну, yourkit подхватить его сможет (сам хост-процесс). Поможет ли?

через типа конвееры
типа

Неа, не поможет.

cnupm
()

Переписать на С.

Dron ★★★★★
()

Message queues + daemon threads

anonymous
()

Попробовать обратиться в support или багтрекер или наконец соответствующий тематический ресурс или даже msdn.

Материалы по теме:

* http://fsinfo.noone.org/~abe/Windoof/win95.c

* http://michaelsync.net/2006/10/13/window-xp-source-code

* http://mydebianblog.blogspot.ru/2010/04/microsoft-windows-eula-end-users.html

* https://www.reddit.com/r/windows/

В свое время под винду был разраотан на форте шедуллер, кажется nnm, очень компактный и возможно шустрый.

anonymous
()
Ответ на: комментарий от router

Может тормозит vsphere, а не powershell. Когда-то костылял скрипт для получения несвежих снапшотов, так больше половины времени работы скрипта занимало подключение к vsphere.

Deleted
()
Ответ на: комментарий от router

Не совсем в тему, но использование памяти объектом

[gc]::GetTotalMemory( $object )

и общий объём памяти процесса

(Get-Process -id $pid).VM

Цифры кстати очень впечатляют.

router ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.