Wpis z mikrobloga

@NieBendePrasowac: Tak na marginesie - żebyś się nie zdziwił. Do Rust jest dostępny parser Json używający instrukcji AVX, który potrafi parsować Jsona z prędkością ponad 1 GB/s na jednym rdzeniu. To szybciej niż binarne gRPC w wielu innych stackach. W Javie parsowanie Jsona kończy się zwykle kreacją milionów obiektów na stercie, co nie tylko jest powolne samo w sobie, ale jeszcze potrafi striggerować GC i wtedy wszystko się zatrzymuje. No
  • Odpowiedz
@pokpok: jak się bawisz w benchmarki to 3-5x tak jak napisałem wyżej, ale wymaga to bardzo dużej gimnastyki po stronie Javy. Ale w porównaniu z idiomatycznym kodem Java to praktycznie nie miałem jeszcze przypadku żebym nie uzyskał ponad 10x oszczędności CPU i ponad 50x oszczędności pamięci. Używać Javy to tak jakby zastąpić sobie wszystkie komputery komputerami sprzed 10-20 lat. Przy czym to nie tylko dotyczy Javy, bo również dotyczy aplikacji
  • Odpowiedz
@Krolik a wszystko to dlatego że dla klienta końcowego czasem "wolno" jest "wystarczająco szybko" aby zrównoważyć koszty zatrudnienia super mózgów za krocie vs. studentów na śmieciówkę. Może i nie jest za szybko, może i ma bugi, ale za to jest tanio a za pół roku i tak biznes się zmieni na tyle że ta robota pójdzie w piach i napisze się coś nowego. Tak wygląda dzisiaj głównie żyćko deva średniaka a
  • Odpowiedz
@Pit1337: Bo dla tego kto PLACI za software często nie ma znaczenia jak ten software działa. Natomiast ten kto go potem używa przeklina. Zapytaj kogokolwiek kto używa SAPa jak mu się pracuje ;)

aby zrównoważyć koszty zatrudnienia super mózgów za krocie vs. studentów na śmieciówkę.


Paradoks sytuacji jest taki, że wytwarzanie softu który działa dobrze nie jest wcale dużo droższe od wytwarzania softu który działa źle lub w ogóle nie
  • Odpowiedz
Pracuję dużo z COBOLowcami (konsultant mainframe here) i czasem mi opowiadają te historie z przeszłości, na przykład nie było kiedyś remote ani nawet nikt nie miał w domu internetu więc jak w nocy się coś z-----o to dzwonili do niego na domowy telefon i musiał siedzieć i pytać co widzą na ekranie i gadać im po kolei jakie literki wpisywać w konsoli żeby naprawić bug w kodzie. W krytycznych sytuacjach niektóre banki
  • Odpowiedz
Ale kod który powstaje w typowym korpo na typowych frameworkach typu Hibernae to nie jest kod dobrze zoptymalizowany. To jest kod tragiczny wydajnościowo


@Krolik: podajesz konkretne ścisłe wartości, ale bez źródła, czyli również bez odniesienia co wlasciwie porównujemy.
Weźmy jako przykład typowy backend na mikroserwisach w springu/micronaucie/quarkusie

Co masz na myśli że taki kod jest niewydajny? Że korzysta się z ORM zamiast pisać customowy mapper czy co? Przecież to w
  • Odpowiedz
To byly takie chady, ze te ich bibiloteki dzialaly tylko w ich programach. Zadnych mozliwosci integracji czy ponownego uzycia


@briskmann: zapewne dlatego w windows 11 znajdziesz jeszcze masę kodu z win95, którego odgórnie zakazuje się ruszać w MS?
  • Odpowiedz
@NieBendePrasowac: ORM ormowi nierówny. Hibernate i podobne ciężkie ORMy potrafiązmarnować wielokrotnie więcej zasobów i czasu na głupie mapowanie obiektów niż baza danych (napisana zwykle w C) na wygenerowanie i przesłanie rezultatów zapytań. Dorzucamy do tego jeszcze jakiś jednej czy dwa błędy typu problem n+1 selectów i jesteśmy w obszarze "1000x wolniej". Jak chcesz linki obrazujące to zjawisko to... odwiedź taki portal jak wykop.pl. W czasie jak wykop ładuje 10 postów,
  • Odpowiedz
@MrUboot: Jest nadmiarowe i nie rozwiązuje żadnego problemu, który nie byłby rozwiązany już istniejącymi prostszymi mechanizmami - funkcjami, interfejsami, kompozycją. Poza tym prowadzi do pokręconego przepływu sterowania, które skacze po hierarchii klas jak pijany zając. Wprowadza też bardzo silne wiązanie między klasami w hierarchii.
  • Odpowiedz
@Krolik: Hejka, ile masz lat doświadczenia? Ile komercyjnego softu napisałeś w ruscie? Ile projektow skończyłeś?

Serio uważasz, ze samo napisanie w ruscie rozwiązuje problemy wydajnościowe? Zdajesz sobie sprawę, ze większość low latency w tradingu to Java? ;)
  • Odpowiedz
@BreathDeath:

Serio uważasz, ze samo napisanie w ruscie rozwiązuje problemy wydajnościowe?


Zależy jak duże problemy. Na pewno mocno pomaga, o ile ktoś ma przynajmniej podstawowe pojęcie o pisaniu wydajnego kodu. Java w pisaniu wydajnego kodu głównie przeszkadza a wiele optymalizacji wręcz
  • Odpowiedz
@Krolik: Widziałem jave w HFT ba ścieżce krytycznej. :) było kiedyś tutaj nawet ama z gościem, który takie rzeczy robi.

Co do optymalizacji to możesz to robić w każdym języku. Ja rozumiem, ze rust jest fajny, pisze w nim komercyjnie, ale odchodzę, bo liczy się kasa, a programistów rusta jest mniej i są drożsi niż np. kotlinowcy czy javowcy. Tak samo jak w big data masz scale i jest dużo
  • Odpowiedz
@BreathDeath: pisze komercyjnie w Ruście już drugi projekt.

Co do optymalizacji to możesz to robić w każdym języku


Tylko języki mocno różnią się tym jakie optymalizacje jesteś w stanie zrobić i jak będzie wyglądał kod źródłowy po optymalizacji. Języki takie jak Java dają programiście mało kontroli a optymalizacja powoduje duży spadek czytelności kodu, dlatego zwykle jej się nie
  • Odpowiedz
@Krolik: Jeżeli robisz CV driven development i chcesz sobie popisać w fajnym języku to super. Jeżeli jednak patrzysz biznesowo i jesteś powiedzmy tech leadem albo CTO to trochę zmienia się optyką. Ja nie rekomenduje do projektu rusta jeżeli nie jest naprawdę krytycznie potrzebny. Z prostego powodu, kasa. Placa mi za optymalizacje. Czasami lepiej wydać 1k miesięcznie więcej na AWS niż zatrudniać programistów za ciężki hajs a potem prosić tylko 3
  • Odpowiedz
@BreathDeath: Z punktu widzenia tech leada to patrzę na to zupełnie inaczej. Zatrudnię tańszych programistów o ile? O 20%? Ale potem będę się bawił z pożarami na produkcji co będzie kosztować więcej, i to nie tylko na poprawienie, ale za tym stoi również ryzyko utraty klientów.

Tak jak wcześniej pisałem, to nie jest kwestia wydajności, a budowania oprogramowania rozsądnie, a w tym mieszczą się takie rzeczy jak łatwość utrzymania, czytelność,
  • Odpowiedz