- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Oldman2: Magyar feliratos/szinkronos játékok PS4/PS5 konzolokra
- Parci: Milyen mosógépet vegyek?
- eBay-es kütyük kis pénzért
- mefistofeles: Az elhízás nem akaratgyengeség!
Új hozzászólás Aktív témák
-
modder
aktív tag
válasz
MrSealRD
#4239
üzenetére
Esküszöm, nem értem, mit akarsz mondani Superhun válaszára.
De pár tény:
1) A JVM k*rva okos és tele van optimalizációval. Memória allokációnak alig van költsége, persze sok kis objektum lassíthatja a GC-t. Megoldás: arra az objektumra ne veszítsük el a referenciát, amit újra fogunk használni. Ennek megkönnyítésére szoktak memory poolokat implementálni Javában úgy, ahogy C++-ban is. De ezeket elég speckó esetekben szokták használni, amikor a sebesség van mindenek felett.
2) literálokra referencia mindig ugyanarra a memóriaterületre mutat. for() { String s = "nyorr"; } nem fog új objektumot létrehozni minden egyes iterációban
3) Olyan mikro-optimalizációról beszélünk, aminél egy adatbázis lekérdezés nagyságrendekkel lassabb: semmi értelme gondolkodni rajtaCiklusban String összefűzést StringBuilderrel, mert azt a compiler tudtommal nem ismeri fel, ellenben a "egy" + "ketto" + $valami.toString; kóddal, amit StringBuilderre cserél (vagy StringBuffer, most hirtelen nem emlékszem, melyik a thread-safe)
Nem látom értelmét String helyett StringBufferben tárolni a stringet.
Szerk.:
Közben rájöttem, mit akartál mondani, de elég veszélyes. Ha Stringbuilderben tárolod a stringeket, akkor a StringBuilder mutable, és olyan helyen is megváltoztathatod a String értékét, ahol nem akarod. pl.:StringBuilder strTime = getTimeInString();
page1.setLastVisited(strTime);majd később:
StringBuilder strTime = getTimeInString();
page2.setLastVisited(strTime);no shit, lastVisited szintén frissült page1-re, mert ugyanaz az objektum. Nem hiába találták ki, hogy a String immutable.
-
TBG
senior tag
válasz
MrSealRD
#4239
üzenetére
Ez csak abban az esetben jelenthet gondot, ha több tízezres/százezres nagyságrendben "kallódnak" az objektumok. Ergó, a felhasználástól is függ, hogy az ember hogyan hegyezi ki a kódot. Illetve érdemes-e nagyon kihegyzeni. Mindenesetre ökölszabály, hogy ha tökmind1, akkor is a szebb, takarékosabb megoldást használjuk.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Lexus, Toyota topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- PlayStation 5
- Poco F7 – bajnokesélyes
- sziku69: Fűzzük össze a szavakat :)
- Elemlámpa, zseblámpa
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Elektromos cigaretta 🔞
- Samsung Galaxy A54 - türelemjáték
- Windows 10
- További aktív témák...
- 6 hónap garancia - Samsung Galaxy A32 5G 4GB RAM / 128GB
- Apple Macbook Pro 14" - M4 Pro - 24GB/512GB - 68 Ciklus (MX2E3MG/A) Ezüst - MAGYAR - 2+ év garancia
- Latitude 7420 2-in-1 14" FHD IPS érintő i7-1185G7 32GB 512GB NVMe ujjolv IR kam gar
- SAMSUNG LS49AG950NPXEN 49" NEO Q-LED 5K GAMER 240HZ ! AKCIÓ
- SAMSUNG (LS57CG952NUXEN) 57" Q-LED GAMER 6K MONITOR ! AKCIÓ
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- GYÖNYÖRŰ iPhone 13 Pro 128GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4403
- HIBÁTLAN iPhone 11 Pro Max 64GB Space Grey-1 ÉV GARANCIA - Kártyafüggetlen, MS4415
- Bomba ár! Lenovo ThinkPad X390: i7-G8 I 16GB I 512SSD I 13,3" FHD Touch I HDMI I Cam I W11 I Gar
- LG 45GS95QX - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


