CONTENTS DELETED
The author has deleted this message.
|
2011/8/2 Владимир Мусулайнен <[hidden email]>:
> Немудреный такой тест. > > 1. Pharo basic VM > 2. Pharo cog VM > 3. Cincom St > > 1. Time millisecondsToRun: [10000 factorial] 663 > 2. Time millisecondsToRun: [10000 factorial] 574 > 3. Time millisecondsToRun: [10000 factorial] 270 > Микро-бенчмарки бесполезны ибо не дают полной картины. Если уж речь о микро-бенчмарках - то "стандартный" бенч которым все пользуются это 1 tinyBenchmarks но конечно все эти микро-тесты не дают полной картины. > Открытие 100 пустых окон и отдельно удаление этих окон > код для Pharo: > Time millisecondsToRun: > [windows := OrderedCollection new. > 100 timesRepeat: > [| window | > window := StandardWindow new. > windows add: window. > window openInWorld]]. > > Time millisecondsToRun: [windows do: [:each | each delete]] > > Код для VW ST: > Time millisecondsToRun: > [windows := OrderedCollection new. > 100 timesRepeat: > [| window | > window := ScheduledWindow new. > windows add: window. > window open]]. > > Time millisecondsToRun: [windows do: [:each | each close]] > > 1. 1542 и 720 > 2. 459 и 158 > 3. 3044 и 64 > Ну здесь вообще очень (мягко сказано) условное сравнение. Потому как совершенно разные фреймворки. > > Далее, заметил как-то сильное различие на выполнение 10000 factorial, > то pharo выдаст за 700 ms, то 900 ms. это батенька работа Garbage Collector. > Сделал следующее: > times := OrderedCollection new. > 10 timesRepeat: [times add: (Time millisecondsToRun: [10000 > factorial])]. > times inspect > > 1. #(936 1103 1165 924 883 893 966 861 888 1060) > 2. #(771 813 769 830 838 799 752 766 820 742) > 3. #(273 273 273 273 279 279 275 274 274 274) > Я бы посоветовал Вам сравнивать вещи, которые действительно важны и критичны для проекта: работы с коллекциями, потоками, файлами, сокетами и т.п. Вместо того, чтобы измерять время работы вещей, которые совершенно никакой погоды (никогда) не делают. :) > -- > http://groups.google.ru/group/sugr -- Best regards, Igor Stasenko AKA sig. -- http://groups.google.ru/group/sugr |
Coгласен с Игорем. Чисто теоретически. Подозреваю primitive 29 под pharo не работает или не существует поэтому умножение LargePositiveInteger происходит в Smalltalk в отличии от VW.
2011/8/2 Igor Stasenko <[hidden email]> 2011/8/2 Владимир Мусулайнен <[hidden email]>: -- http://groups.google.ru/group/sugr |
In reply to this post by Igor Stasenko
CONTENTS DELETED
The author has deleted this message.
|
2011/8/2 Владимир Мусулайнен <[hidden email]>:
> Игорь, я предвидел такой ответ и он, на мой взгляд, справедлив. Но > лишь отчасти. > >> Микро-бенчмарки бесполезны ибо не дают полной картины. > > Про микробенчмарки - ну что подвернулось на скорую руку. Собственно, я > решил за минуту это проделать, так как мне сегодня пожаловался дядька > на медленность Pharo.Он вообще рубист, но я ему как-то расписывал > давненько Seaside. И он решил попробовать, сначала на Cincom с полгода > назад. А вот сейчас на Pharo. Так вот, он посмотрел на простое > seaside приложение (из примеров, где икренментируют/декрементируют > число) и оно работало гораздо медленее, чем в Cincom. Поэтому и сделал > несколько сравнений - только на ядро и только на UI. Веб с сисайдом > оставил в стороне, не хотелось возиться дольше пару минут. Просто для > оценки навскидку. > > Ну что я могу сказать, VW конечно быстрее, ибо JIT там разрабатывался годами, тогда как Cog появился сравнительно недавно. Есть много обьективных причин почему там быстрее. > >> это батенька работа Garbage Collector. > > Да понятно, что GC. Я правильно понимаю, что он может вылезти во время > активных вычислений? > Я к тому, что, насколько я помню, у Cincom мусорщик не вылезает во > время работы, за исключением того момента, когда память у ВМ > кончилась, и тут уж, хошь не хошь, чистить надо. > Ну тут вопрос в том, сколько итераций проходит между полным "сливом бачка" :) т.е. сколько надо намусорить чтоб произошел полный скан памяти (и ее очистка) Эти параметры можно тюнить - смотрите раздел GC в SmalltalkImage. >> Я бы посоветовал Вам сравнивать вещи, которые действительно важны и >> критичны для проекта: >> работы с коллекциями, потоками, файлами, сокетами и т.п. > > Да вот не критично мне как раз это :). > > Мне Pharo нужен на 50% за UI. Поэтому для меня это вещи важные. > И для любого прикладного программиста разрабатывающего desktop- > приложения, тем более тиражируемые приложения для хомячков (home > user), работа UI интерфейса - очень важна. Он должен быть красив и > быстр. > И в большинстве десктоп-приложений нет какой-то мудреной логики, > большого объема вычислений. > Возьмем обычный ToDo-List, или домашнюю бухгалтерию. Там 90% всей > работы программиста в создании интерфейса. > > Поэтому еще раз повторюсь: UI важен для десктоп приложений. > Если позиционировать Pharo как и Ruby для веба или скриптования, то > да, тут наплевать. > Они используют Glamour для постройки интерфейса. Опять же - я каждый день с UI - иногда открыто по 20 окон и скорость меня вполне устравивает. Конечно всегда хочется быть еще быстрее, но по ощущениям я бы сказал что меня не раздражает "медленность" ибо во время работы никаких особых тормозов я не замечаю, т.е. делать UI-приложения можно :) Сравнивать конечно можно по скорости с другими фреймворками, но насколько это критично? > > К вопросу "Ты за первый интернационал или за второй?" Я не ругаю Pharo > и готов, по мере сил и скудных познаний/умений, проложить руки к > развитию. > Но понимать, можно ли сейчас использовать тот или иной язык/диалект/ > фреймворк для решения какой-либо задачи, тоже нужно и важно. > Можно. :) Тем более что чем больше пользователей и активных проектов - тем больше приток улучшений. Я понимаю, Вы стоите перед нелегким выбором - что брать за основу для своего проекта VW или Pharo. Я не в праве давать советы ибо естественно моя позиция не нейтральна :) Просто хочу напомнить, что VW это коммерческий продукт. И на определенном этапе вам придется платить денежки за его использование. Причем их бизнес политика оставляет желать лучшего (насколько я слышал, они просят не много ни мало - процент с вашего общего дохода). Хотя конечно все течет, все меняется. :) > > On 2 авг, 21:56, Igor Stasenko <[hidden email]> wrote: >> 2011/8/2 Владимир Мусулайнен <[hidden email]>: >> >> > Немудреный такой тест. >> >> > 1. Pharo basic VM >> > 2. Pharo cog VM >> > 3. Cincom St >> >> > 1. Time millisecondsToRun: [10000 factorial] 663 >> > 2. Time millisecondsToRun: [10000 factorial] 574 >> > 3. Time millisecondsToRun: [10000 factorial] 270 >> >> Микро-бенчмарки бесполезны ибо не дают полной картины. >> >> Если уж речь о микро-бенчмарках - то "стандартный" бенч которым все >> пользуются это >> >> 1 tinyBenchmarks >> >> но конечно все эти микро-тесты не дают полной картины. >> >> >> >> >> >> >> >> >> >> > Открытие 100 пустых окон и отдельно удаление этих окон >> > код для Pharo: >> > Time millisecondsToRun: >> > [windows := OrderedCollection new. >> > 100 timesRepeat: >> > [| window | >> > window := StandardWindow new. >> > windows add: window. >> > window openInWorld]]. >> >> > Time millisecondsToRun: [windows do: [:each | each delete]] >> >> > Код для VW ST: >> > Time millisecondsToRun: >> > [windows := OrderedCollection new. >> > 100 timesRepeat: >> > [| window | >> > window := ScheduledWindow new. >> > windows add: window. >> > window open]]. >> >> > Time millisecondsToRun: [windows do: [:each | each close]] >> >> > 1. 1542 и 720 >> > 2. 459 и 158 >> > 3. 3044 и 64 >> >> Ну здесь вообще очень (мягко сказано) условное сравнение. Потому как >> совершенно разные фреймворки. >> >> >> >> > Далее, заметил как-то сильное различие на выполнение 10000 factorial, >> > то pharo выдаст за 700 ms, то 900 ms. >> >> это батенька работа Garbage Collector. >> >> > Сделал следующее: >> > times := OrderedCollection new. >> > 10 timesRepeat: [times add: (Time millisecondsToRun: [10000 >> > factorial])]. >> > times inspect >> >> > 1. #(936 1103 1165 924 883 893 966 861 888 1060) >> > 2. #(771 813 769 830 838 799 752 766 820 742) >> > 3. #(273 273 273 273 279 279 275 274 274 274) >> >> Я бы посоветовал Вам сравнивать вещи, которые действительно важны и >> критичны для проекта: >> работы с коллекциями, потоками, файлами, сокетами и т.п. >> Вместо того, чтобы измерять время работы вещей, которые совершенно >> никакой погоды (никогда) не делают. >> :) >> >> > -- >> >http://groups.google.ru/group/sugr >> >> -- >> Best regards, >> Igor Stasenko AKA sig. > > -- > http://groups.google.ru/group/sugr -- Best regards, Igor Stasenko AKA sig. -- http://groups.google.ru/group/sugr |
Free forum by Nabble | Edit this page |