{"28827":{"id":28827,"votes":0,"views":0,"text":"```\r\nJe\u015bli jest taka mo\u017cliwo\u015b\u0107, powinni\u015bmy reu\u017cywa\u0107 jeden obiekt za ka\u017cdym razem kiedy jest potrzebny, zamiast tworzy\u0107 kolejny, kt\u00f3ry jest funkcjonalnie identyczny. Mo\u017ce mie\u0107 to sporo znaczenie wydajno\u015bciowe.\r\n```\r\nna Boga usu\u0144 to !!!! obiekty maj\u0105 by\u0107 niemutowalne i kr\u00f3tko \u017cyj\u0105ce - jak plastikowa torebka, idziesz do biedry -> kupujesz -> wyrzucasz torb\u0119. \r\nRe u\u017cywanie obiekt\u00f3w powoduje szybkie za\u015bmiecanie OLD-GENU, a to jest koszmar ! kopiowanie obiekt\u00f3w pomi\u0119dzy spacami (s0 i s1), potem old-gen narzuca czas na garbage-collector young genu przez card-table-scanning, to spowalnia. Alkokacja pami\u0119ci na nowy obiekt nie kosztuje nic (to jakie\u015b ~10 instrukcji CPU) dzi\u0119ki thread local allocation buffer (TLAB). \r\nMo\u017cesz robi\u0107 pule obiekt\u00f3w, ale to jest do\u015b\u0107 skomplikowane.\r\n\r\n```java\r\npublic class Main {\r\n\r\n volatile static String xxx;\r\n volatile static ByteBuf buffe;\r\n\r\n volatile static String[] chcemyJeNaHeapie = new String[1000];\r\n\r\n volatile static int i = 0;\r\n\r\n public static void main(String args[]) throws InterruptedException {\r\n\r\n buffe = Unpooled.directBuffer(4 * 500_000_000);\r\n\r\n\/\/ buffe = Unpooled.buffer(4 * 500_000_000);\r\n while (true)\r\n {\r\n xxx = new String(new Random().nextDouble() + \"sdkaskdaksd\");\r\n i++;\r\n chcemyJeNaHeapie[i % 1000] = xxx;\r\n }\r\n }\r\n}\r\n```\r\nwe\u017a se to odpal, z za komentowanym i od komentowanym kawa\u0142kiem alokacji zmiennej \"buffe\" (tak wiem, liter\u00f3wka, niewa\u017cne) - i zoba jak zachowuje si\u0119 GC (czasy kolekcji) \r\nP.S w dependency musisz mie\u0107 netty.\r\nP.S ten kod nie by\u0142 odpalany z ZGC oraz shenandoah (tam nie ma generacji)","html":"
Je\u015bli jest taka mo\u017cliwo\u015b\u0107, powinni\u015bmy reu\u017cywa\u0107 jeden obiekt za ka\u017cdym razem kiedy jest potrzebny, zamiast tworzy\u0107 kolejny, kt\u00f3ry jest funkcjonalnie identyczny. Mo\u017ce mie\u0107 to sporo znaczenie wydajno\u015bciowe.\n<\/code><\/pre>\nna Boga usu\u0144 to !!!! obiekty maj\u0105 by\u0107 niemutowalne i kr\u00f3tko \u017cyj\u0105ce - jak plastikowa torebka, idziesz do biedry -> kupujesz -> wyrzucasz torb\u0119.
\nRe u\u017cywanie obiekt\u00f3w powoduje szybkie za\u015bmiecanie OLD-GENU, a to jest koszmar ! kopiowanie obiekt\u00f3w pomi\u0119dzy spacami (s0 i s1), potem old-gen narzuca czas na garbage-collector young genu przez card-table-scanning, to spowalnia. Alkokacja pami\u0119ci na nowy obiekt nie kosztuje nic (to jakie\u015b ~10 instrukcji CPU) dzi\u0119ki thread local allocation buffer (TLAB).
\nMo\u017cesz robi\u0107 pule obiekt\u00f3w, ale to jest do\u015b\u0107 skomplikowane.<\/p>\n
public class Main {\n\n volatile static String xxx;\n volatile static ByteBuf buffe;\n\n volatile static String[] chcemyJeNaHeapie = new String[1000];\n\n volatile static int i = 0;\n\n public static void main(String args[]) throws InterruptedException {\n\n buffe = Unpooled.directBuffer(4 * 500_000_000);\n\n\/\/ buffe = Unpooled.buffer(4 * 500_000_000);\n while (true)\n {\n xxx = new String(new Random().nextDouble() + \"sdkaskdaksd\");\n i++;\n chcemyJeNaHeapie[i % 1000] = xxx;\n }\n }\n}\n<\/code><\/pre>\nwe\u017a se to odpal, z za komentowanym i od komentowanym kawa\u0142kiem alokacji zmiennej \"buffe\" (tak wiem, liter\u00f3wka, niewa\u017cne) - i zoba jak zachowuje si\u0119 GC (czasy kolekcji)
\nP.S w dependency musisz mie\u0107 netty.
\nP.S ten kod nie by\u0142 odpalany z ZGC oraz shenandoah (tam nie ma generacji)<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28827","created_at":"2018-05-19T19:32:37+02:00","updated_at":"2018-05-19T19:32:37+02:00","comments":[],"user":{"id":86268,"name":"rubaszny_karp","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/59f638521ca67.gif","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Im9adVlpaktnaFUxMnhabHJPL29Wa0E9PSIsInZhbHVlIjoicE9EN1paUmg1b2FzNE5JMCtIUElpOHhXMWFaN0R6RTgrQVFpZVdSeC9iUlNHb1RoSkFZSjdaWUJLc1Y1M1VLVSIsIm1hYyI6IjgyODU4ZmMzZWVjNmUzMjdlMzJkYWQxZDc3OGQ2YTI0ZWJlODg3ZDI4YmFkZWU5Y2I4NmFlMmE2MmRjMTE2NTEiLCJ0YWciOiIifQ==","deleted_at":null},"28830":{"id":28830,"votes":0,"views":0,"text":"@rubaszny_karp: Dzi\u0119ki za komentarz. Rozumiem mniej wi\u0119cej to co napisa\u0142e\u015b, ale w takim razie co Joshua Bloch mia\u0142 na my\u015bli pisz\u0105c to? Bo to jest wr\u0119cz t\u0142umaczenie z jego ksi\u0105\u017cki: `It is often appropriate to reuse a single object instead of creating a new functionally equivalent object each time it is needed. Reuse can be both faster and more stylish.` Tak samo co z przyk\u0142adami we wpisie, niby lepiej za ka\u017cdym razem w p\u0119tli tworzy\u0107 np. now\u0105 instancj\u0119 `Pattern` ni\u017c j\u0105 przypisa\u0107 do zmiennej i reu\u017cywa\u0107 w tej p\u0119tli? Jakby\u015b m\u00f3g\u0142 bardziej rozwin\u0105\u0107 temat to by\u0142bym wdzi\u0119czny, a post poprawi\u0119 odpowiednio :)","html":"
@rubaszny_karp<\/a>: Dzi\u0119ki za komentarz. Rozumiem mniej wi\u0119cej to co napisa\u0142e\u015b, ale w takim razie co Joshua Bloch mia\u0142 na my\u015bli pisz\u0105c to? Bo to jest wr\u0119cz t\u0142umaczenie z jego ksi\u0105\u017cki: It is often appropriate to reuse a single object instead of creating a new functionally equivalent object each time it is needed. Reuse can be both faster and more stylish.<\/code> Tak samo co z przyk\u0142adami we wpisie, niby lepiej za ka\u017cdym razem w p\u0119tli tworzy\u0107 np. now\u0105 instancj\u0119 Pattern<\/code> ni\u017c j\u0105 przypisa\u0107 do zmiennej i reu\u017cywa\u0107 w tej p\u0119tli? Jakby\u015b m\u00f3g\u0142 bardziej rozwin\u0105\u0107 temat to by\u0142bym wdzi\u0119czny, a post poprawi\u0119 odpowiednio :)<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28830","created_at":"2018-05-19T20:51:02+02:00","updated_at":"2018-05-19T20:51:02+02:00","comments":[],"user":{"id":81782,"name":"Codeboy","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InpDU1JEaG1FZDQzZ0wrRmJ3WEI0Rmc9PSIsInZhbHVlIjoidlF4bTFOMDF5V1dWSUg2Tms1QTkrbDV2WEROTU9sME4wVnVxTzl0bUxuR0RUblEzbTE5dHJxbExJMlVUWFg5QiIsIm1hYyI6IjlmYTFmNzczNzk4ODE5ZmIzMGE5Y2YwMzk1ZjRhMWVhYzRkNzRlOWNkOTZjMjBkZDNjYzdmMDY2ZTc4MDE4ODEiLCJ0YWciOiIifQ==","deleted_at":null},"28832":{"id":28832,"votes":1,"views":0,"text":"w sumie to na reszty nie czyta\u0142em XD ale jak patrze na Twoje przyk\u0142ady to jak najbardziej ok, masz racje (nie wiem czy akurat szybciej, bo javac(kompilator) du\u017co potrafi) ale na pewno jest to bardziej \"stylish\" i to jest dobra praktyka :) z tym Pattern to te\u017c racje, ale chodzi raczej o fakt, ale np: to zdanie w kontek\u015bcie jaki\u015b biznesowych obiekt\u00f3w w du\u017cych aplikacjach to mo\u017ce by\u0107 killer, we\u017a np: obiekt Faktura, kt\u00f3ra przechodzi w aplikacji przez kilka serwis\u00f3w, jest te\u017c modyfikowany (ju\u017c nie wspominam o thread safty), w jednym serwisie faktura ma zmienian\u0105 kwot\u0119, potem podatek w innym serwisie, to zamiast trzyma\u0107 ten jeden obiekt, kt\u00f3ry po np: 500ms przetwarzania mo\u017ce znale\u017a\u0107 si\u0119 w old genie, lepiej jest tworzy\u0107 za ka\u017cdym razem niemutowalny obiekt, z nowymi warto\u015bciami odpowich p\u00f3l na podstawie starego obiektu.","html":"w sumie to na reszty nie czyta\u0142em XD ale jak patrze na Twoje przyk\u0142ady to jak najbardziej ok, masz racje (nie wiem czy akurat szybciej, bo javac(kompilator) du\u017co potrafi) ale na pewno jest to bardziej \"stylish\" i to jest dobra praktyka :) z tym Pattern to te\u017c racje, ale chodzi raczej o fakt, ale np: to zdanie w kontek\u015bcie jaki\u015b biznesowych obiekt\u00f3w w du\u017cych aplikacjach to mo\u017ce by\u0107 killer, we\u017a np: obiekt Faktura, kt\u00f3ra przechodzi w aplikacji przez kilka serwis\u00f3w, jest te\u017c modyfikowany (ju\u017c nie wspominam o thread safty), w jednym serwisie faktura ma zmienian\u0105 kwot\u0119, potem podatek w innym serwisie, to zamiast trzyma\u0107 ten jeden obiekt, kt\u00f3ry po np: 500ms przetwarzania mo\u017ce znale\u017a\u0107 si\u0119 w old genie, lepiej jest tworzy\u0107 za ka\u017cdym razem niemutowalny obiekt, z nowymi warto\u015bciami odpowich p\u00f3l na podstawie starego obiektu.<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28832","created_at":"2018-05-19T21:57:35+02:00","updated_at":"2018-05-19T21:57:35+02:00","comments":[],"user":{"id":86268,"name":"rubaszny_karp","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/59f638521ca67.gif","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6ImNkeVZaY2pYOEhQSzNTMmJ1QXk1bWc9PSIsInZhbHVlIjoielJUbkhoSEJUTmg5aHNYVFdlRTdCVXRMRUVnWllLbHFkM04wS1JBdmFEaTVNeExtaldKMWtHUFdXb3E2cWZwUiIsIm1hYyI6IjFjNTk2ODcxMzY3ZmY5NzNhMGU2Yjc1OTk4MTE5ZTg3ZWZjM2YyYTg2Y2FmMDVlMGU2YzI0ZDcwNDg0MjYwYWEiLCJ0YWciOiIifQ==","deleted_at":null},"28833":{"id":28833,"votes":1,"views":0,"text":"Generalnie za\u0142o\u017cenie : obiekt ma by\u0107 nie-mutowalny - rozwi\u0105zuje spraw\u0119 :)\r\nP.S jak tak teraz czytam, to w sumie troch\u0119 s\u0142abo zinterpretowa\u0142em to zdanie do kt\u00f3rego si\u0119 odnios\u0142em (bo przyk\u0142ady z Twojego bloga s\u0105 ok) XD ale ju\u017c trudno, niech zostanie, par\u0119 s\u0142\u00f3w o card-table i gc zawsze cenne ;D","html":"
Generalnie za\u0142o\u017cenie : obiekt ma by\u0107 nie-mutowalny - rozwi\u0105zuje spraw\u0119 :)
\nP.S jak tak teraz czytam, to w sumie troch\u0119 s\u0142abo zinterpretowa\u0142em to zdanie do kt\u00f3rego si\u0119 odnios\u0142em (bo przyk\u0142ady z Twojego bloga s\u0105 ok) XD ale ju\u017c trudno, niech zostanie, par\u0119 s\u0142\u00f3w o card-table i gc zawsze cenne ;D<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28833","created_at":"2018-05-19T21:59:14+02:00","updated_at":"2018-05-19T21:59:14+02:00","comments":[],"user":{"id":86268,"name":"rubaszny_karp","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/59f638521ca67.gif","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Ikd4dStpeUhWcS9wcVE0djl4cHBGQmc9PSIsInZhbHVlIjoiOGJiYndiUnI1RG9xTWFzVG42bjdwMmR6UWIzOTZFeEl1SnRINmRLSklyMkUrV1dkZU1iS2tvT2ViRjB4MWhWbyIsIm1hYyI6ImY4MTgxYjgxNTk0ZGM4OTg2ZWZlMTRmZGY1MDNjYTQwYmMzN2ZhNGVkNjY0MTc3OWUyMWY0YTliODAzODNhYTIiLCJ0YWciOiIifQ==","deleted_at":null},"28834":{"id":28834,"votes":0,"views":0,"text":"@rubaszny_karp: i tak zmieni\u0142em ten pocz\u0105tek bo jak najbardziej si\u0119 z tob\u0105 zgadzam i nie chcia\u0142bym \u017ceby inni tak przez przypadek to zinterpretowali. Widzia\u0142e\u015b? My\u015bl\u0119, \u017ce teraz jest git ;)","html":"
@rubaszny_karp<\/a>: i tak zmieni\u0142em ten pocz\u0105tek bo jak najbardziej si\u0119 z tob\u0105 zgadzam i nie chcia\u0142bym \u017ceby inni tak przez przypadek to zinterpretowali. Widzia\u0142e\u015b? My\u015bl\u0119, \u017ce teraz jest git ;)<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28834","created_at":"2018-05-19T22:27:38+02:00","updated_at":"2018-05-19T22:27:38+02:00","comments":[],"user":{"id":81782,"name":"Codeboy","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IjdKb3dab3g2ZXk3THRQaFNkL25QMGc9PSIsInZhbHVlIjoiQjV6Z3VoUHlOaW9xcUFvMUoyRXpGMExuNnFaUGxtelpabGNhTDEvaDd3MzBSekJFZlJ1MXFKZmtWRlMwOGw2eiIsIm1hYyI6IjMxMzZhODIzZTc1OGI1ZjllNGJjYzQ4MGZiYWY5MmNkNWQzYzlkMmYxNTk0YmE1N2JhNDkyNDZhY2FkYmNiMDIiLCJ0YWciOiIifQ==","deleted_at":null},"28835":{"id":28835,"votes":0,"views":0,"text":"jest git :)","html":"jest git :)<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28835","created_at":"2018-05-19T22:54:49+02:00","updated_at":"2018-05-19T22:54:49+02:00","comments":[],"user":{"id":86268,"name":"rubaszny_karp","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/59f638521ca67.gif","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Im53MmtJV1RLMXFlK3o4TUdVcC92Snc9PSIsInZhbHVlIjoib09wTEpnVktwaXZIL2cvMEdvaXRRbWJrcHBuaU02Tnl4WitpK2p2UHdmL25ReEZzZXMvODdSQTlUcTc1blI1MyIsIm1hYyI6IjM5MTYxMDQ2YTU4Mjk4MTJjNDM2YmZhOTEwZDRlZDliMTQ5ZDhmM2VmMzY5M2ZiZThjZDQyZWVkOTVmYmEwZmUiLCJ0YWciOiIifQ==","deleted_at":null},"28837":{"id":28837,"votes":0,"views":0,"text":"@rubaszny_karp: no to fajnie :) B\u0105d\u017a te\u017c czujny przy nast\u0119pnym wpisie za tydzie\u0144, bo tam te\u017c b\u0119dzie grz\u0105ski temat - wycieki pami\u0119ci :P","html":"
@rubaszny_karp<\/a>: no to fajnie :) B\u0105d\u017a te\u017c czujny przy nast\u0119pnym wpisie za tydzie\u0144, bo tam te\u017c b\u0119dzie grz\u0105ski temat - wycieki pami\u0119ci :P<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28837","created_at":"2018-05-19T23:02:21+02:00","updated_at":"2018-05-19T23:02:21+02:00","comments":[],"user":{"id":81782,"name":"Codeboy","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Inc4WXAyTnVqR05aVnpITlpBSjluN3c9PSIsInZhbHVlIjoiMVNkNkUxQmtzYUlwanB4elBqcWJSNC9YR0FFREh5V3d1dU9ITkE5YSt1ajk1QWRtWGlCMHhYVE9EZmJ3SDZsLyIsIm1hYyI6IjI0NzliZWJhNDJjZGQ1MDEwNGU5MzBjMzU5NzY5MjUxNGU4MGIwYzMyZTM1ZmFmMzI4M2Q5Y2ZhMDI3MjUyMjYiLCJ0YWciOiIifQ==","deleted_at":null},"28842":{"id":28842,"votes":1,"views":0,"text":"@Codeboy: Post spoko. Tylko czemu 'Joshua Blosch' (nie 'Bloch'), to faktyczna pomy\u0142ka czy jaki\u015b trik i ja o czym\u015b nie wiem?:","html":"@Codeboy<\/a>: Post spoko. Tylko czemu 'Joshua Blosch' (nie 'Bloch'), to faktyczna pomy\u0142ka czy jaki\u015b trik i ja o czym\u015b nie wiem?:<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28842","created_at":"2018-05-20T13:43:34+02:00","updated_at":"2018-05-20T13:43:34+02:00","comments":[],"user":{"id":91285,"name":"Shadov","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlFaL3hQeWFpdFZvQUpZVUM4WXEyUlE9PSIsInZhbHVlIjoiOTJxVUZZeGUvWk0rZ245OU5VN2hPQmxOUk8rRWRJcjdlalp2NFpwSGxiYjNWME53R21BYzhSMnNDT2dZR0Q5SiIsIm1hYyI6IjY4NTFjNjNiNmRmZWIyYWY4MGJhMzFiOGVlZDQyZWFlOGJkZmM3MzYzNWM0MmMyNmM4ZGJjODQwNzc0MjlhYjgiLCJ0YWciOiIifQ==","deleted_at":null},"28844":{"id":28844,"votes":0,"views":0,"text":"@Shadov: nie no jasne, \u017ce liter\u00f3wka. Poprawione :)","html":"@Shadov<\/a>: nie no jasne, \u017ce liter\u00f3wka. Poprawione :)<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28844","created_at":"2018-05-20T14:07:54+02:00","updated_at":"2018-05-20T14:07:54+02:00","comments":[],"user":{"id":81782,"name":"Codeboy","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6ImV2SDdlaUdVOUZFMHAzczJQUWxCekE9PSIsInZhbHVlIjoiZ1MwSURFeVA4bElhQVlSNzR6cWdiaG9wREJjQ2p2cjlqdWx1SUZlYytvNnB4Tlhpb2lUOWx2RkQrcCtUdWMrVCIsIm1hYyI6Ijg4MjNkOWJmOTVlYzA2MTQyZTE2NGJkZTExMjdlZTdmYzk1NGViYmI3YzNlMWUxNzg3NzExYWJjODM3MDFhNDQiLCJ0YWciOiIifQ==","deleted_at":null},"28856":{"id":28856,"votes":0,"views":0,"text":"@Codeboy: jak ju\u017c poprawisz nazwisko, to dodaj pls info o tym co to jest wzorzec py\u0142ka i dlaczego karp go nie lubi (bo ja nie rozumiem): http:\/\/www.baeldung.com\/java-flyweight \/ https:\/\/refactoring.guru\/design-patterns\/flyweight\/java\/example","html":"@Codeboy<\/a>: jak ju\u017c poprawisz nazwisko, to dodaj pls info o tym co to jest wzorzec py\u0142ka i dlaczego karp go nie lubi (bo ja nie rozumiem): http:\/\/www.baeldung.com\/java-flyweight<\/a> \/ https:\/\/refactoring.guru\/design-patterns\/flyweight\/java\/example<\/a><\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28856","created_at":"2018-05-20T23:18:33+02:00","updated_at":"2018-05-20T23:18:33+02:00","comments":[],"user":{"id":48869,"name":"vpiotr","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5f\/5f9df87cb6749.jpg","deleted_at":"2022-05-14T20:38:46.000000Z","is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InA5OG1OSFZKbjJLZHpzMzJIWTh2Nmc9PSIsInZhbHVlIjoic3ZIbnNCS0dVNCszcW5CRVNWQm5UTFB3VGdQV3Ava2pObjd0aVREYmM0MEY3Rk5FTTlqOExOVU1BMkZUY3NvQyIsIm1hYyI6IjFkNmFkZWFhYmYwMDM3NDBlNWQ3OWRmYmZiYzAyOTdhYjBjYWM2MGJmM2I3NDI4MzFmY2U4MzJiYWQ0N2RjOTUiLCJ0YWciOiIifQ==","deleted_at":null},"28857":{"id":28857,"votes":0,"views":0,"text":"@vpiotr: ??? ja niczego nie nie lubie, poda\u0142em Ci do\u015b\u0107 zasadny argument dlaczego obiekty maj\u0105 mie\u0107 jak najkr\u00f3tszy cykl \u017cycia i co powoduje za\u015bmiecony old-gen (razem ze kawa\u0142kiem kodu kt\u00f3ry mo\u017cesz odpali\u0107, a wynik zmierzy\u0107) - je\u017celi chcesz poczyta\u0107 jeszcze troch\u0119 o card-marking napisz na priv. \r\nP.S nie wiem co to wzorzec py\u0142ka - w sumie, \u015brednio si\u0119 znam na wzorcach projektowych.","html":"@vpiotr: ??? ja niczego nie nie lubie, poda\u0142em Ci do\u015b\u0107 zasadny argument dlaczego obiekty maj\u0105 mie\u0107 jak najkr\u00f3tszy cykl \u017cycia i co powoduje za\u015bmiecony old-gen (razem ze kawa\u0142kiem kodu kt\u00f3ry mo\u017cesz odpali\u0107, a wynik zmierzy\u0107) - je\u017celi chcesz poczyta\u0107 jeszcze troch\u0119 o card-marking napisz na priv.
\nP.S nie wiem co to wzorzec py\u0142ka - w sumie, \u015brednio si\u0119 znam na wzorcach projektowych.<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28857","created_at":"2018-05-21T00:06:39+02:00","updated_at":"2018-05-21T00:06:39+02:00","comments":[],"user":{"id":86268,"name":"rubaszny_karp","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/59f638521ca67.gif","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Im1ZbzJsNjlXeHZwWXE0ZzZib014SXc9PSIsInZhbHVlIjoidmdXdjVqaGhWd3VRRkVuVjFMZy94KzJtSUpYenlMamlHWlZvZkFFQkpHQ0x6NktJRUNvVUJkTXFBZEl6WTFoYyIsIm1hYyI6ImZiMDE4YTEwOTM2OWU0ZDE2Y2M0ZTQ0YjRkMjIwNjg0Mzc5NzEwYjJjN2JjYzA4NDJjMDc4Y2FhZDE3YmEwOGUiLCJ0YWciOiIifQ==","deleted_at":null},"28858":{"id":28858,"votes":0,"views":0,"text":"@rubaszny_karp: a ja wskaza\u0142em arty opisuj\u0105ce kiedy nie masz racji w stwierdzeniu \"obiekty maj\u0105 mie\u0107 jak najkr\u00f3tszy cykl \u017cycia\". Nie jest to uniwersalna prawda, chocia\u017c cz\u0119sto jest. W Javie komu\u015b nawet przysz\u0142o do g\u0142owy stosowa\u0107 ten pattern [do integer\u00f3w](https:\/\/tinyurl.com\/valueOf-int).","html":"
@rubaszny_karp<\/a>: a ja wskaza\u0142em arty opisuj\u0105ce kiedy nie masz racji w stwierdzeniu \"obiekty maj\u0105 mie\u0107 jak najkr\u00f3tszy cykl \u017cycia\". Nie jest to uniwersalna prawda, chocia\u017c cz\u0119sto jest. W Javie komu\u015b nawet przysz\u0142o do g\u0142owy stosowa\u0107 ten pattern do integer\u00f3w<\/a>.<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28858","created_at":"2018-05-21T06:50:44+02:00","updated_at":"2018-05-21T06:50:44+02:00","comments":[],"user":{"id":48869,"name":"vpiotr","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5f\/5f9df87cb6749.jpg","deleted_at":"2022-05-14T20:38:46.000000Z","is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlRNWlpSc29tQjF2OVVNc2NkV2xCOEE9PSIsInZhbHVlIjoiZnhVWDdkRGVJZWVUOG5IeVYxeFV4Z3lYTkRYNXFZT3UxQXpEUW5URm9TYk9iVWJxVGJHaVQ4MjQydVN1aVNEZCIsIm1hYyI6Ijc3NGQzZTM0ZWZjYzhjYWZmN2VhODdhMzBlOWVhZmZmODg0Mjg4NTVlZDM5NjU5MmQ4MGQ3N2VlNzQ0Zjg5M2IiLCJ0YWciOiIifQ==","deleted_at":null},"28861":{"id":28861,"votes":0,"views":0,"text":"Kiedy ostatnio napisa\u0142e\u015b metod\u0119 kt\u00f3ra cachuje sam obiekt tylko po to \u017ceby unikn\u0105\u0107 jego ponownego stworzenia (cachowanie wynik\u00f3w a bazy\/query\/rest\u00f3w si\u0119 nie liczy) ?","html":"Kiedy ostatnio napisa\u0142e\u015b metod\u0119 kt\u00f3ra cachuje sam obiekt tylko po to \u017ceby unikn\u0105\u0107 jego ponownego stworzenia (cachowanie wynik\u00f3w a bazy\/query\/rest\u00f3w si\u0119 nie liczy) ?<\/p>\n","parent_id":28821,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/28821#comment-28861","created_at":"2018-05-21T09:05:26+02:00","updated_at":"2018-05-21T09:05:26+02:00","comments":[],"user":{"id":86268,"name":"rubaszny_karp","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/59f638521ca67.gif","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IngzKzQ2Qm5FbTNHeWNRZGg5aHA1NkE9PSIsInZhbHVlIjoiL1hmTlNkL3BKVGRiaUNQWVQxL3l1RzVlTGZXdHpha2s5UnBEYUhZSE15VnVqc0gxdk56YUJQUHJtYjVyWFhnWCIsIm1hYyI6IjE0M2QzY2MzMTg0ZWE4YzVlNWQ1ODNhNTgwMGY5ZDEyZTQ0ZjBiNTQ4NjkwNzM1ZWM1MWE4OWUxMmJkZWNmNzEiLCJ0YWciOiIifQ==","deleted_at":null},"28862":{"id":28862,"votes":0,"views":0,"text":"@rubaszny_karp: dla mnie to jedno z podstawowych zastosowa\u0144 fabryki...","html":"