Hirdetés
- MasterDeeJay: Intel Optane M10: mire lehet használni?
- Luck Dragon: Asszociációs játék. :)
- Meggyi001: Áram nélkül....méltóság nélkül.....
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- gerner1
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Fűzzük össze a szavakat :)
- Lalikiraly: Commodore The C64, Ultimate
- Luck Dragon: Óraátállítá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?:))
- MasterDeeJay: Intel Optane M10: mire lehet használni?
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- Luck Dragon: Asszociációs játék. :)
- Spórolós topik
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Debrecen és környéke adok-veszek-beszélgetek
- SkyShowtime
- Elemlámpa, zseblámpa
- Samsung Galaxy S10e - esszenciális
- Meggyi001: Áram nélkül....méltóság nélkül.....
- További aktív témák...
- JBL Bar 5.1 (Lecsatolható háttérsugárzós) Soundbar 510W, mélynyomóval
- Asus rog strix rtx 4080 oc
- Játékra vagy Munkára! Csere-Beszámítás! I7 3930K / Nvida GTX Titan B / 16GB DDR3 / 500GB SSD!
- Felsőkategóriás Gamer PC-Számítógép! Csere-Beszámítás! Z790 / I5 14600KF / 4070Ti Super / 32GB DDR5
- EVGA GeForce GTX 1080 Ti FTW3 HYBRID
- Lenovo ThinkPad L13 Gen 2 Yoga Ryzen3 5400U Refurbished - Garancia
- Vásárlunk iPhone 12/12 Mini/12 Pro/12 Pro Max
- AKCIÓ! MSI Gaming Cyborg A15 FHD Gamer notebook - R5 240 16GB DDR5 512GB SSD RTX 5050 8GB
- BESZÁMÍTÁS! Sony PlayStation 4 Slim 1TB HDD játékkonzol garanciával hibátlan működéssel
- Tablet felvásárlás! Samsung Galaxy Tab S10+, Samsung Galaxy Tab S10 Ultra, Samsung Galaxy Tab S10 FE
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
