Jakąkolwiek technologię wirtualizacji używam
Pamiętam czasy, kiedy systemy z więcej niż 512 MB pamięci RAM zostały uznane krwawienie krawędzi? Dni spędzam na pisaniu kodu do przeora.
Pracuję głównie na programach niskiego poziomu, które działają w uprzywilejowanej domenie w środowisku Xen. Nasz pułap dla uprzywilejowanej domeny wynosi 512 MB, pozostawiając resztę pamięci RAM dla naszych klientów. Typowe jest dla nas ograniczenie uprzywilejowanej domeny tylko do jednego rdzenia procesora.
Oto ja, pisząc kod, który będzie działał na nowym serwerze o wartości 6 000 $, a każdy program musi (najlepiej) działać w ramach pułapu przydzielonego 100 kb lub całkowicie unikać dynamicznego przydzielania pamięci.
Zwięźle, zoptymalizować dla:
- Ślad pamięci
- Sortuje (gdzie większość mojego kodu spędza większość czasu)
Muszę też być niezwykle sumienny, jeśli chodzi o czas oczekiwania na zamki, oczekiwanie na I / O lub po prostu czekać w ogóle. Znaczna ilość mojego czasu idzie do poprawy istniejących bibliotek gniazd bez blokowania i patrząc na bardziej praktycznych metod zamka swobodnego programowania.
Każdego dnia uważam, że to trochę ironiczne, że piszę kod, tak jak 15 lat temu, na systemach, które zostały zakupione w zeszłym miesiącu ze względu na postęp technologiczny.
Jest to typowe dla każdego, kto pracuje na platformach osadzonych, a także, choć nawet wielu z tych, co najmniej 1GB do ich dyspozycji. Jak podkreśla Jason, jest to również typowe podczas pisania programów uruchamianych na urządzeniach mobilnych. Lista jest długa, kioski, ciency klienci, ramki do zdjęć itp.
Zaczynam myśleć, że ograniczenia sprzętowe naprawdę oddzielne programistów od ludzi, którzy mogą sprawić, że praca coś nie dbając, co faktycznie zużywa. Martwię się (głosujcie, jeśli trzeba), jakie języki to całkowicie abstrakcyjne sprawdzanie typów i pamięci do zbiorowej puli zdrowego rozsądku, która (kiedyś) była dzielona między programistów różnych dyscyplin.