Hirdetés
Ú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.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- LG 32GN650-B monitor, 31.5 , 1440p, 165hz, g-sync/freesync
- LG 77" G4 OLED evo 4K HDR Smart 144Hz Gaming TV
- ASUS ROG STRIX 4090 (RTX4090-O24G-GAMING) 24GB GDDR6X (még 12 hó garival)
- Eladó Cisco Switch SG500 és SG350
- Bomba ár! Lenovo X1 Tab G2 i5-7Y57 I 8GB I 256GB SSD I 12" 2K IPS Touch I Cam I W10 I Garancia
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Samsung 213T 4:3 1600x1200 VA monitor eladó
- HIBÁTLAN iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3109
- Samsung Galaxy A21s 32GB, Kártyafüggetlen, 1 Év Garanciával
- MINI PC HP PRODESK 600 G2 G3 G4 G5 i3 és i5 6-9. gen gar. Budapest MPL Foxpost
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest