Odpowiedzi po Confiturze

W sumie odpowiedź na pytanie o biblioteki, które trzeba mieć w swoim arsenale, jeżeli ruszamy do boju przeciwko Javie 8 🙂

Na podstawie tego tekstu plus moje rozszerzenia:

  • Google Guava – Nie tylko kolekcje, ale też ESB, net, czy grafy (o tym nie pisałem). Tam jest dużo różnych ciekawych rzeczy ponad kolekcjami.
  • Lombok – generatory kodu, obiekty niezmienne itp. Robienie sobie dobrze na poziomie objętości kodu. Przy czym trzeba uważać, bo dookoła śmiga też JPA czy Spring ze swoimi proxy i aspektami.
  • pCollections – kolekcje, które czasami się przydają. Nie zastąpią tych z API, ale czasami potrzebujemy specyficznych funkcjonalności czy też niezmienności. To jest jakiś pomysł.
  • Javaslang – różne elementy funkcyjne, dość ciekawe strumienie i duża naturalność w pisaniu. Przy czym z tyłu głowy pytanie o wydajność… ale to jest Java 😉
  • JOOQ/JOOL – biblioteka, która ma podobne zadanie co pCollection. Generalnie czasami potrzebujemy jakiegoś ekstra API dla strumieni. Tu je zapewne znajdziemy.

Miła pani, która o to zapytała – kto ty?

Pytanie od Tomka Nurkiewicza o użycie parallel streamów. Wersja krótka – wątki potrzebują RAMu, którego nie mogliśmy zapewnić. Wersja trochę bardziej rozbudowana. „Optymalizacje” zrównoleglające mają taki dziwny „defekt”, że JVM próbuje alokować pamięć dla każdego wątku, ale nie swapując pamięci wątków nieaktywnych. Inaczej mówiąc, jeżeli chcemy za alokować np. 500MB pamięci dla każdego z 10 wątków (zakładając, że możemy puścić 10 wątków na raz) to potrzebujemy 5GB i jeżeli damy maszynie 2GB to się wyjebie (albo nie wiem jak to skonfigurować). Dlatego też trzeba delikatnie z mechanizmami wielowątkowymi.

Tyle na dziś.

6 myśli na temat “Odpowiedzi po Confiturze

Napisz odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax