porównanie implementacji ruby’ego

dzięki znajomemu (hi tmarc) dowiedziałem się o ciekawym tekście. autor porównał w nim wydajność kilku (41) testów w różnych implementacjach języka ruby.

udział wzięły kanony:

  • ruby 1.8 (na linuksie i na windows vista
  • ruby 1.9

ale także wersje mniej standardowe:

  • jruby
  • gardens point ruby .net (wersja beta, na windows vista)
  • rubinius
  • cardinal

porównano wydajność każdej z implementacji w stosunkdu do złotego wzorca – czyli 1.8 na linuksie.

efekt? no cóż. 1.9 zdecydowanie rządzi. ruby 1.8 na linuksie ma drugie miejsce. wersja na windowsach jest trochę wolniejsza, ale (co ważniejsze) wywala się na 2 testach!

pozostałe implementacje: wolno i kiepsko. “hitem" jest cardinal – większość testów zakończona błędem, dwa trwały powyżej  15 minut i zostały ręcznie ubite (te testy były “zrobione" przez 1.8 w czasach 9.5 i 0.5 sekundy!). choć trzeba przyznać, że w 3 testach cardinal osiągnął najlepszy wynik. wydajnościowo gorszy był rubinius, ale on miał mniej errorów (“ledwie" koło połowy).

można spojrzeć by rozwiać złudzenia, lub nauczyć się czegoś z testów.

nowa technologia kości ram

ibm ogłosił, że opracowali właśnie nową technologię produkcji kości ram.

nowe kości są rozwinięciem idei i metody produkcji dram, ale prędkością zbliżone do sram. czyli około 2 krotnie szybsze od obecnych kostek.

sram od zawsze był szybszy, ale te kości były sporo większe niż standardowe dramy. więc się nie przyjmowały w standardowych zastosowaniach. teraz jednakże – gdy nowy dram ma osiągnąć wydajność sram, można liczyć na spory przełom.

poza zwiększoną szybkością nowe kości mają być też pojemniejsze. trzykrotnie!.

podsumowując: 3 razy więcej ramu, działającego 2 razy szybciej. ciekawe tylko kiedy to wejdzie do seryjnej produkcji i sprzedaży – na razie ibm szacuje, że pierwsze handlowe kości pojawią się w 2008 roku i będą to pamięci serwerowe. inne typy pamięci pojawią się później. a kiedy do laptopów?

dlaczego “kocham” mysql’a

postawiłem sobie w miarę nowego mysql'a: Server version: 5.0.32-Debian_2-log Debian etch distribution.

zrobiłem sobie testową tabelkę:

mysql> create table x (id int primary key);
Query OK, 0 rows affected (0.05 sec)

sprawdzam czy dobrze się założyła, wygląda ok:

mysql> desc x;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | NO   | PRI |         |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.08 sec)

no to teraz pora na zabawę. wstawiam tam 1 rekord:

mysql> insert into x (id) values (6);
Query OK, 1 row affected (0.06 sec)

nadal ok. to teraz wstawiam 10 rekordów z celowym błędem:

mysql> insert into x (id) values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
ERROR 1062 (23000): Duplicate entry '6' for key 1

i teraz zagadka/pytanie:

ile jest rekordów w bazie?

odpowiedź – po przerwie.

Continue reading dlaczego “kocham" mysql'a

postgres 8.3 – wishlist

dobrze wiedzieć co się pojawi w nowej wersji. ten site przedstawia skrótowo to co ma być, może być, fajnie by było jakby było, a co prawie na pewno spadnie do 8.4.

z ciekawszych rzeczy – “grouped index tuples", osbługa xml'a w bazowym postgresie, identity/generated (rany, jak mi tego brakowało), tsearch2 w postgresie bazowym, no i enumy.

co z tego faktycznie wejdzie – zobaczymy. ale zapowiada się miło.

aha. spojrzałem, że mają się też pojawić indeksy bitmapowe. sama funkcjonalność miła, ale jak dla mnie indeksy bitmapowe są ultra-ciekawe z prostego i poza technologicznego powodu. już teraz od groma ludzi myli to co jest w postgresie “bitmapy indeksowe" z tym co by chcieli by było “indeksy bitmapowe". co zrobią ci wszyscy jak do postgresa wejdą te prawdziwe indeksy?

heh.

power6 – nowa, lepsza generacja

ibm od dawna produkuje procesory. i o ile apple z nich zrezygnował, o tyle mają się one świetnie w świecie super-serwerów. dość powiedzieć, że w ostatniej liście top-500, aż 91 maszyn było opartych o architekturę power. niby niedużo (architektury ia-32, amd64 i em64t są popularniejsze), ale wygląda to inaczej gdy spojrzymy na 100 najmocniejszych maszyn – z nich 41 to power'y. i są zdecydowanym liderem – druga w kolejności architektura – amd64 ma tylko 21 maszyn!.

ostatnio ibm zapowiedział wypuszczenie kolejnej generacji – power6. nowy procesor ma dawać dwukrotnie większą moc niż dotychczasowe power5+, przy zachowaniu tej samej energochłonności.

częstotliwości są mocarne – na początek zaplanowano wypuszczenie wersji prostej – 5ghz :). a potem mają wyjść procesory kręcone jeszcze wyżej.

co do kwestii czysto technicznych – mało nowinek. po prostu mocniejszy chip, 2 rdzenie, przetwarzanie 2 wątków jednoczesnie w rdzeniu.

sporo natomiast się zmieniło jeśli chodzi o kwestie prądu.

ostatnie badania poinformowały, że serwerownie w stanach zużywają łącznie więcej niż cały stan mississippi. a nie jest on najmniej energochłonny – jest jeszcze 19 innych zużywających mniej. w skrócie – od groma prądu. szacuje się, że roczne zużycie prądu przez serwerownie na całym świecie to 123 miliardy kilowatogodzin.

ibm widać też wie o tym i sporo kombinuje jak obniżyć zużycie prądu. po pierwsze – procesor będzie płynnie zmieniał częstotliwość w zależności od obciążenia. do tego – zastosowano wszystkie sztuczki modeli powerpc 970 – specjalnej linii procesorowej dla blade'ów. w chwili obecnej linia powerpc 970 zostaje zarzucona gdyż wszystkie mechanizmy które były tam zastosowane zostały też zmigrowane do main-streamowej wersji power6.

co ciekawe – procesorowi można będzie na sztywno ograniczyć zużycie prądu.  np. ustawić to na 300wató. dzięki czemu co by sie nie działo, i jak by procesor nie był obciążony – nie będzie pobierał więcej.

niagara 2 – ciekawostka

koajrzycie taki procesor jak niagara? nowy (relatywnie) chip suna. 8 rdzeni. świetne skalowanie. powolny przy zastosowaniach obliczeniowych.

niedługo ma wyjść nowa iteracja – niagara2. nadal 8 rdzeni, z tym, że tym razem każdy z rdzeni może przetwarzać do 8 wątków jednocześnie! to niby tak jakby mieć 64 procesory.

dodatkowo – podbito taktowanie do 1.4ghz. nadal cienko w porównaniu z intelami, ale dzięki wielordzeniowości może się okazać, że maszyny z niagarą2 będą bardzo interesujące do rzeczy typu webserwery.

wpis który poinformował o częstotliwości wspomniał też o jeszcze jednej rzeczy – aczkolwiek mimochodem. mimo, że to to właśnie jest w/g mnie prawdziwy przełom.

mianowicie – proces technologiczni podobno umożliwi sunowi sprzedawanie wadliwych procesorów. wadliwych w tym sensie, że uszkodzone będą niektóre (1 lub więcej) rdzenie.

gdzie tu przełom? jak może wiecie, ze względu na wysoki poziom skomplikowania produkcji chipów powoduje, że fabryki procesorów mają “urobek" na poziomie kilku procent! czyli z każdych 100 wyprodukowanych procesorów jedynie kilka idzie do sprzedaży. co owocuje wysoką ceną.

jeśli proces technologiczny umożliwi sprzedawania uszkodzonych (częściowo procesorów) to “urobek" wzrośnie kilkukrotnie. co spowoduje, że ceny (nawet tych pełnych) procesorów spadną. a do tego – te uszkodzone będą sporo tańsze od standardowych.

muszę przyznać, że niagara2 zaczyna wyglądać mocno interesująco.