- Eladhatatlannak ítélt CPU-k eladásával javult az Intel node-ok kihozatala
- Az AI átformálja a Peugeot modelljeit is
- Ráműthető a Linux PlayStation 5-re, de csak egy boot erejéig
- Mindenféle környezeti behatásnak ellenállnak az ASUS új TUF tápjai
- A kínai felsővezetés blokkolhatta Mark Zuckerberg óriási AI üzletét
- Beolvad a Palitba a Galax a VGA-piac nehézségei miatt
- Amlogic S905, S912 processzoros készülékek
- HiFi műszaki szemmel - sztereó hangrendszerek
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Jelentősen meglazítja a gyeplőt a Windows 11 frissítéseknél a Microsoft
- HDD probléma (nem adatmentés)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- OLED monitor topic
- Apple MacBook
- Hobby elektronika
Ú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?:))
- A fociról könnyedén, egy baráti társaságban
- Beolvad a Palitba a Galax a VGA-piac nehézségei miatt
- Kerékpárosok, bringások ide!
- Milyen okostelefont vegyek?
- Parkside szerszám kibeszélő
- Linux kezdőknek
- Amlogic S905, S912 processzoros készülékek
- HiFi műszaki szemmel - sztereó hangrendszerek
- BMW topik
- Mobil flották
- További aktív témák...
- Eladó PC játékok - sok ritkaság!!!
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- 16GB (2x8GB) SK Hynix DDR5 5600MHz SODIMM kit
- Makulátlan,lemezes PS5 Slim 1TB (CFI-2116) eladó/Media Markt garancia 2027.12.10-ig/beszámítás van
- Honor Magic 8 Pro 512Gb (7100 akku + 100w adapter!) fekete - 1 hónapos -
- Samsung Odyssey G7 S28BG702EP IPS Monitor! 3840x2160 / 144Hz / 1ms / FreeSync / G-Sync
- LG UltraGear 27GP850-B IPS Monitor! 2560x1440 / 165Hz / 1ms / G-Sync / FreeSync
- 35" ASUS ROG Swift PG35VQ curved GAMER monitor
- Apple Watch Space Black rozsdamentes acél szíj
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 256GB 1 év teljeskörű garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

