15
wrz.
2010
palikowski

Oprogramowanie przyjazne środowisku?!

Przeczytałem niedawno ciekawy wpis na blogu Engineered Web i nieskromnie powiem, że sam od dawna się zastanawiałem ile prądu tracimy na Ziemi używając nieoptymalnego kodu. Doświadczenie (zarówno z obszaru budowy stron www ale też pisania programów, czy poprawiania kodu po kimś) nauczyło mnie, że wiele systemów da się zoptymalizować, przyspieszyć, poprawić ich wydajność.

Często wygląda to tak, że system, pisany na zamówienie z konkretnym budżetem, robi to co trzeba, ale nie grzeszy szybkością działania. Kiedy do kodu, konfiguracji środowiska bądź algorytmów działania usiądzie człowiek nastawiony nie na zysk, ale na "piękno" rozwiązania (czy kod może być piękny? dlaczego nie!) wtedy często gęsto, nie pracując pod presją czasu i budżetów, wyciśnie z niego 2, 3 albo i 5 razy więcej.

Przykład z życia? Jeden z systemów, którymi zajmuję się w pracy co noc, od pięciu lat, wykonywał import danych. Rozwiązanie było zamknięte, napisane na zamówienie. W końcu, zmuszeni innymi czynnikami podjęliśmy decyzję o jego napisaniu od zera. Podczas pisania zdecydowaliśmy usunąć część danych, która de facto nigdy nikomu do niczego nie była potrzebna. Efekt? Zamiast 3,5 godziny pracy serwera zajmuje to obecnie 30 minut.

Inny przykład? Zainstalowanie akceleratora PHP do witryny z np. Drupalem może dać kilkukrotne przyspieszenie pracy witryny, a więc nie jest to nawet robota dla programisty a dla admina serwera!

Ale nawet bez takich spektakularnych osiągnięć, nieoptymalnie działające systemy można śmiało porównać do cieknących kranów. Tu kilka sekund słabo napisanej kwerendy, tam błędnie dobrany bufor mysql, gdzie indziej niepotrzebne deklaracje zmiennych. Setki takich drobnych błędów, w milionach aplikacji jakie codziennie działają na naszych komputerach i serwerach i zbiera się całkiem sporo zmarnowanego czasu, cykli procesora, a w efekcie poboru prądu.

Co z tym zrobić? Może, tak jak sugerują autorzy wspomnianego wpisu, przyznawać znaczek 'energy star' dla oprogramowania? Może szacować 'odcisk stopy', tak jak robi to SAP? Może wręcz zaoferować nagrody za optymalizację popularnych programów? Agencje zajmujące się ochroną środowiska mogłyby przecież ufundować jakieś drobne 100 tysięcy euro rocznie na walkę z zamulającym się Firefoxem, Javą, Flashem, ociężałymi skryptami PHP w rodzaju phpBB, Joomla! czy Drupal. Jedna optymalizacja pomnożona przez wszystkich użytkowników danej aplikacji daje ogromny zysk!