Java - přetypování X datový typ int Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Matiseli
Level 2.5
Level 2.5
Příspěvky: 381
Registrován: červen 14
Bydliště: Podíváte-li se roku 2023 na oblohu, tak na té planetě více v pravo
Pohlaví: Nespecifikováno
Stav:
Offline

Java - přetypování X datový typ int

Příspěvekod Matiseli » 20 led 2015 16:39

Zdravím vás,
již delší dobu mi leží na srdci (resp. v mysli :D) jedna otázka. Ta se především opírá o skutečnost, že datový typ byte nezabírá tolik místa v java paměti - tudíš, pokud vím, že, ku příkladu, budu nyní jistou metodu používat pouze pro malá čísla, mám se vyhnout přetypování (breachmark odhalil, že de fakto žádná ztráta výkonu při něm nehrozí)? Čili, mám napsat

Kód: Vybrat vše

objekt.metoda(intProměnná);

či
objekt.metoda((byte)intProměnná)
?
Ač mi jde převážně o výkon a spotřebu RAM, chápu i filozofii "čistého kódu".
Jaký postup by jste mi doporučili? Mám vytvářet metody s parametrem byte, či s int (když si sem vědom, že s velkými čísly pracovat nebudu)?

Reklama
Uživatelský avatar
satik
Level 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Java - přetypování X datový typ int

Příspěvekod satik » 20 led 2015 17:16

Byte řeš jen, pokud se jedná o data v poli, jinak normálně int, nemá smysl se tímhle zabývat, vliv je buďto nulový nebo tak zanedbatelný, že je v podstatě neměřitelný.

Navíc byte může narušit zarovnání paměti, což ve výsledku může výkonově i uškodit (i když těžko říct, jak přesně je to u Javy :D ).
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Java - přetypování X datový typ int  Vyřešeno

Příspěvekod faraon » 20 led 2015 18:07

Nevím jak to přesně dělá Java, ale třeba v Céčku se s typem char pracuje tak, že se nejdřív převede na int, a teprve potom provede příslušná činnost. Takže by to nakonec mohlo být ještě pomalejší než když tam plácneš jednoduše int.
Další otázka je již zmíněné zarovnání paměti, protože je velmi obvyklé že se proměnné ukládají na adresy dělitelné čtyřmi (u 64bitových strojů spíš osmi), tím pádem ti stejně zabere místo velké jako ten int nebo i větší.
Pokud to nemáš v poli nebo struktuře, nevyplatí se to.

Ono to přetypování by žádnou ztrátu výkonu ani způsobit nemělo, protože to je víceméně jenom poznámka pro překladač, která mu říká že tuhle hodnotu chceš opravdu použít tímhle způsobem, který by mohl dát chybný výsledek. Takže ti nevyhodí warning nebo error. Za běhu programu už tam nic takového neexistuje, prostě se rovnou provede to co jsi požadoval.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti