- Red Magic 11 Air – vékony házból süvít a szél
- Csíptetős fülesek csatája – Sony LinkBuds Clip vs. Huawei FreeClip 2
- Mérföldkő a szilárdtest-akkuknál: fontos lépést tett a QuantumScape
- Újabb óriásakku a Honortól: a X80 lehet a következő 10 000 mAh-s modell
- iPhone 18 Pro Max: kis kapacitásbővítés hoz nagy előrelépést üzemidőben
- Xiaomi 15T Pro - a téma nincs lezárva
- Macrodroid
- Honor Magic6 Pro - kör közepén számok
- Külföldi prepaid SIM-ek itthon
- Milyen okostelefont vegyek?
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Poco F6 5G - Turbó Rudi
- iPhone topik
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Bemutatkozott a Poco X7 és X7 Pro
Ú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?:))
- Gyári állapot !! Macbook Pro Retina 16" M1 Pro 10C CPU / 16C GPU / 32 GB MEMÓRIA/ 512 SSD / Garancia
- iPhone 17 Pro MAX 256 GB DEEP Purple - 100%-os Akku, 1 hetet használt!
- Apple iPhone 17 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- Olvass! Akció! Acer Nitro 5 AN515-57! I7 11800H / RTX 3050Ti / 16GB DDR4 / 512GB Nvme SSD!
- Gamer PC-Számítógép! Csere-Beszámítás! I5 10400F / GTX 1070 8GB / 16GB DDR4 / 512 Nvme SSD
- Bomba ár! Lenovo ThinkPad T490s - i5-8GEN I 16GB I 256SSD I 14" FHD I Cam I W11 I Gari!
- BESZÁMÍTÁS! Sapphire B650M R7 8700F 32GB DDR5 1TB SSD RX 6800 16GB Zalman Z1 PLUS Seasonic 750W
- Telefon felváráslás!! Xiaomi Redmi Note 11, Xiaomi Redmi Note 11 Pro, Xiaomi 11 Lite
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- iKing.hu Apple iPhone 15 Pro 128GB Natural Titanium használt, karcmentes 92% akku 6 hónap garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs



