← Архив: Common Lisp

Откуда такие тормоза?

Author: · 23.04.2011 16:25
· original author: rsx
sbcl  от Вакуленко. Emacs + slime. После Alt-x slime по появления repl - 3 секунды.
Пробовал рисовать GUI через clTcL - окно перерисовыается за 5-6 секунд.
Железо хоть и старое, но винда на нем просто летает. 2xXeon 1Ггц (P3 ), памяти 512 Mb.
· original author: Love5an
>sbcl  от Вакуленко


?
>2xXeon 

Ну два икс то он два икс, но пока всё в одном треде, от второго ядра толку не будет. 
1 ггц P3 - хз, если честно. Плохо, но, имхо, не фатально.


>памяти 512 Mb.


Вот это основная проблема. Памяти мало. Голый SBCL при старте отжирает 30 мегабайт, и это только при старте, и совсем без всего. А он в системе не один.


>Пробовал рисовать GUI через clTcL - окно перерисовыается за 5-6 секунд.


cl-tcl - хз, но по-моему не лучший вариант для gui, особенно в плане производительности - он общается с Tk через интерпретатор tcl


>винда на нем просто летает


А какая винда? У меня подозрение, что Vista и 7 на таком железе неюзабельны. А XP - ну дык, система 2001 года. Железо такого уровня виртуальные машины типа CL, Java или .NET не тянет, в основном из-за ограничений по памяти. Винда очень любит использовать своп, и на системах с небольшим кол-вом RAM это основная причина тормозов - советую попробовать перед использованием чего-нибудь, после его загрузки, но перед вызовами функций "прогреть" SBCL, вызвав пару раз функции (room) и (gc :full t) - это поднимет страницы с диска в память.




Тормоза, вообще, конечно, тормоза, но мне вот интересно как всякие там питоны с рубями на таком железе будут тормозить - тормоза sbcl покажутся верхом производительности.
· original author: Ander Skirnir
Совершенно уверен, здесь основная проблема - Tk. У меня sbcl на пне втором 233 мгц с 256 мб под win-xp оперативы вполне прилично летал, а гуйня на ltk безбожно тормозила.
· original author: rsx
>но мне вот интересно как всякие там питоны с рубями на таком железе будут тормозить - тормоза sbcl покажутся верхом производительности
perl/Tk на таком железе просто летает, как и Tcl.  Allegro Common Lisp работает просто влет.
Мне кажется проблема в самом sbcl под винду.
This is SBCL 1.0.47.18.277.wth.kovalenko
*(ql:quickload "cl-gtk2-gtk")
Грузит минуты 3, в консоле. Это нормально?
После (gtk-demo:demo) часть окошек иногда просто не отвечает.
Сейчас на машине 1,5 гига ОЗУ.
· original author: rsx
Продолжаю исследования.
Обновил  linux (до  Debian 6.0)  на отдельном разделе. Ядро 2.6.32
У меня intel scsi raid, pci-x64  4 диска по 10к.
emacs+slime+sbcl+quicklisp.
Загрузка cl-gtk2-gt в slime работает абсолютно также медленно.
(gtk-demo:demo) - нет никаких отличий.
Жду комментариев. Причем хочу заметить, что это же самое железо с 512mb FreeBSD + apache2+perl работало 4 года назад в на хостинге с нагрузкой от 5 тыс. посещений в сутки.
.
· original author: rsx
Специально для love5an: "1 ггц P3 - хз, если честно. Плохо, но, имхо, не фатально"
Мне сказали, что на маме 2 процессора Xeon P3, каждый в своем сокете + 16 слотов pci-x. Купил маму за 3 тыс. полгода назад.
· original author: Love5an
>Грузит минуты 3, в консоле. Это нормально? 

В принципе, да.
"Загрузка"(т.е. функция load) кода в лиспах это совсем не то же самое, что подгрузка сишных динамических бибилотек или assembly в .NET. На самом деле просто последовательное выполнение всех toplevel-форм в некотором файле.


>После (gtk-demo:demo) часть окошек иногда просто не отвечает.


Это уже к автору cl-gtk2. Если речь о винде, то могут быть проблемы с самим GTK(у меня на виндах с ним вечно какие-то проблемы возникали).




Я тут скоро, кстати, допилю биндинги к user32 и comctl32, и там, уверен, никаких проблем, и тормозов, не будет.