[Squeak-ev] Squeak im Produktiveinsatz

Philippe Marschall philippe.marschall at gmail.com
Sam Sep 15 14:44:07 UTC 2007


Am 15.09.07 schrieb Stefan Schmiedl <s at xss.de>:
> Hallo Squeaker.
>
> Nachdem mich die Jungs von Cincom letzte Woche etwas verärgert haben,
> bin ich am ernsthaften Überlegen, fällt das Hauptargument für
> VisualWorks (plattformübergreifende "Standard"-GUI-Clients) weg.
>
> Eine anstehende Web-Applikation hab ich zwar schon in VW angefangen,
> aber AIDA gibt's auch für Squeak, da sollte sich der Aufwand für den
> Umstieg in Grenzen halten. Die Daten liegen zurzeit in einer ca 120MB
> großen SQLServer-Datenbank, wo ich sie wohl auch liegen lassen muss,
> damit die übrigen Komponenten nach wie vor funktionieren.

SQLServer ist ein bisschen ein Problem denn es gibt keinen Treiber
dafür. Kannst zwar ODBC verwenden, das ist aber recht suboptimal
(blockiert die VM und so).

> Bevor ich da aber ernsthaft anfange, würde ich gerne wissen:
>
> - Wie macht sich denn Squeak so als Langlauf-Server-Prozess auf einer
>   (32-bit)-Linux-Kiste (2xPentium V 2.3 GHz, 3GB RAM)? Der Rechner
>   selbst ist jetzt ein OpenXchange-Server für den Kunden und langweilt
>   sich fürchterlich...
>
> - Läuft das Ding in guter alter Linux-Manier "einfach so immer" oder
>   sollte ich das Image wöchentlich oder täglich neu starten?

Kommt darauf an, meine Erfahrung ist da recht Windows-mässig. Die
Dinger hängen sich von Zeit zu Zeit immer mal wieder auf (Sockets,
Semaphores, Delays, such dir was aus). Andreas hat vor kurzer Zeit
einige Semaphore und Delay fixes gepostet mit denen es ihm möglich war
eine Uptime von mehr als zwei Tagen zu erreichen und die auch
Semaphore >> #critical: fixen sollte. Dann war da vor kurzem auch noch
ein Patch von Elliot. Ich weiss nicht ob man mit denen jetzt Semaphare
und Delay als funktionierend betrachten kann.

> - Gibt's irgendwelche Besonderheiten zu beachten? Harte Grenzen wie die
>   max. Zahl an Objekten oder sowas?

Also mit einer VM ohne die pointer fixes ist unter Umständen schon bei
128MB Schluss. In ein Set/Dictionary mit Objekten als key welche #hash
von Object haben ist bei 4096 items Schluss. Finger weg von Weak*
Datenstrukturen. Dann gibt es diverse harte Grenzen auf bytecode Ebene
die dich aber nicht betreffen sollten. Wenn du was ernsthaftes hast,
wirst du nicht draum rumkommen die GC parameter an das 21. Jahrhundert
anzuspassen. John McIntosh hat einige gute Posts dazu. Der oldspace GC
ist nicht inkrementell. Im Allgemeinen ist es besser du hast mehrere
kleine Images, die sich die Last teilen statt ein grosses. Solche
Sachen halt.

Also wenn du etwas grösseres und kritisches hast, würde ich es mir
noch ein zweites mal überlegen. Da es ja sowieso um eine
Webapplikation geht, kann dir ja egal sein, ob Cincom jetzt ein neues
UI Framework bringt oder nicht.

> - Gibt's irgendwelche Tipps und Tricks für bzw. Warnungen vor bestimmten
>   Tools, die fürs Arbeiten wichtig sind? Enorm hilfreich für mich wären
>   z.b. die beiden "History"-Knöpfchen "<" und ">", die der alte
>   RefactoringBrowser hatte, der neue OmniBrowser aber anscheinend nicht.
>
> - Welche Image-Version nimmt "man" denn heute zum Entwickeln? Ich hab
>   auf dem Windows-Laptop eine 3.10-er VM und das letzte 3.9-er image und
>   ein Weilchen mit Universes und SqueakMap und Monticello at SqueakSource
>   gekämpft, bis ich ein System beisammen hatte, in dem die Sachen drin
>   waren, die ich haben wollte.

Ist Geschmacktsfrage. Da gibt's das volle Spektrum von minimalem 3.7er
Image, 3.8, 3.9 oder natürlich die dev-images von Damien. Je älter das
Image, desto mehr Patches musst du dafür halt zusammensuchen. Und fürs
deployment stellt sich die frage ob du einfach ein dev-image nimmst
oder irgend was kleineres im Extremfall ein Kernelimage von Pavel.

Gruss
Philippe