Pożytki ze zrzucenia własnego rdzenia
Uwaga, wpis bardzo ezoteryczny. Proszę się nie popadać w samodeprecjacje
Jakiś czas temu, jak przymierzałem się do zakupu VPS z ograniczoną jak na współczesne warunki pamięcią operacyjna 128MB, testowałem zajętość pamięci różnych rzeczy. Tak aby zobaczyć, ile kosztuje MB przyjemności :-). Pamiętam, że SBCL + zajmował jakieś 20MB RSS/ 90MB VSZ. Wartość ta była akceptowalna.
Wczoraj skopiowałem tajny projekt dino na mojego VPSa. Uruchamiam i patrze a tu 50MB zjedzone. Co jest? Czyżbym się znów pomylił, jak to było z kursem dolara kanadyjskiego? Otóż nie. Do testów użyłem dino, co operowało na zrzuconym rdzeniu (ang: core dump). A wczoraj ładował biblioteki przy starcie do standardowego rdzenia. Zatem mogę polecić uruchamianie common-lispa z własnego rdzenia. Dwie zalety:
A teraz krótka instrukcja jak zrzucić rdzeń i potem go użyć.
Wyżej wymieniona instrukcja stanie się niepotrzebna, gdy w końcu zrobię wydanie dino. Na razie jeden z komponentów jest już wersji alfa clget :-).
dump-core.lisp z listą ulubionych bibliotek
(require :asdf)
(require :sb-posix)
(asdf:oos 'asdf:load-op :swank)
(asdf:oos 'asdf:load-op :clark) ;; to też tajny projekt
(asdf:oos 'asdf:load-op :hunchentoot)
(sb-ext:save-lisp-and-die "my-core.core")
sbcl --disable-debugger --noprint --no-userinit --load dump-core.lisp
start.lisp:
(clark::start-server)
(swank:create-server :port 4005 :dont-close t :external-format :utf-8-unix)
(hunchentoot:start-server :port 4242)
sbcl --core my-core.core --disable-debugger --noprint --no-userinit --load start.lisp
uruchamiamy M-x slime-connect.
Dzięki Nabla. Właśnie do tego miałem usiąść a tak mam gotowca
Spox. Mam zamiar publikować więcej wiedzy ezoterycznej
Hm… szkoda że nie napisałeś tego wcześniej, leniwy jestem i było by jak znalazł