Existuje jazyk, ktery...

Kit

Re:Existuje jazyk, ktery...
« Odpověď #15 kdy: 18. 08. 2018, 23:06:24 »
Co vam presne vadi na new, ze sa alokuje nieco na heap?  Alebo, boze chran, by ste chceli nezdielany heap per CPU core, aby nebolo treba globalny garbage collector ako to ma erlang? Vadi vam garbage collector? Chceli by ste data iba na stacku a vyhnut sa dereferencovaniu instancii na heape? Toto vas trapi?

Pokud by mu vadilo jen alokování objektů na heapu, tak použije Go.


Bacsa

Re:Existuje jazyk, ktery...
« Odpověď #16 kdy: 18. 08. 2018, 23:23:38 »
Co vam presne vadi na new, ze sa alokuje nieco na heap?  Alebo, boze chran, by ste chceli nezdielany heap per CPU core, aby nebolo treba globalny garbage collector ako to ma erlang? Vadi vam garbage collector? Chceli by ste data iba na stacku a vyhnut sa dereferencovaniu instancii na heape? Toto vas trapi?
Pokud by mu vadilo jen alokování objektů na heapu, tak použije Go.
Tam by to šlo taky na haldu.

O

Re:Existuje jazyk, ktery...
« Odpověď #17 kdy: 19. 08. 2018, 08:43:20 »
Přepiš to do C a máš jistotu, že se ti tam nikdy žádný objekt instanciovat nebude.

anonym

Re:Existuje jazyk, ktery...
« Odpověď #18 kdy: 19. 08. 2018, 09:36:31 »
Staci se podivat do Javy na Stream API, kazda tečka rovná se vrací se nová instance specifické třídy. Musí to tak bohužel tímto stylem být, to prostě nejde jinak. Přitom se domnívám, že se jedná o cosi, co by šlo jednoduše syntax cukrovat, možností jak by se to dalo udělat je několik.

V Javě to prostě nejde normálně udělat bez oprátoru new. Ještě se dá použít Object pool, ale to je narovnávák na ohýbák.

Vy teda říkáte, že ten JIT dokáže i vyrušít vytváření nových instancí?

***

Jinak tím, že to výkonostně stačí to začíná (plýtvání), a tím že mám dneska prakticky stejně RAMky jako před 15 lety končí. Viz. třeba Slack který vyžere 1GB ram.
Ved lambdy a method reference je syntakticky cukor, ktory sa spolieha na invokedynamic...


No to se teda nespoleha na dynamicky invoke, s nim to nema nic spolecneho, lambda je cukr pro vytvareni anonymni instance (funkcionalniho) interface, ktery se predava jako parametr. Kompilator predela lambdy do normalniho javovoskeho kodu, zadna reflexe tam neni.

polobuh

Re:Existuje jazyk, ktery...
« Odpověď #19 kdy: 19. 08. 2018, 10:11:19 »
Hele kluci, vy se vyznate. Existuje jazyk , ktery mi vojede starou? me uz ta jeji smrdi. jo a idealne aby to pritom vykonu vytvarelo ci nejmin objectu na heapu, malloc je pomalej, jo a taky co nejmin na stacku, novej stack frame je tady drahej. jo a samozrejme ci nejmin syscallu,  a co nejmin ramky. Idealne a y se veslo vsechno do cachky abych nemel missy. no a cl nejmin branchingu to taky totiz zere hodne. delam novy glugl a toby mi na tom poci co mam doma bezelo pomalu pro tevh milion lidi ci tam buduou jen tak bez reklamy klikat.



Re:Existuje jazyk, ktery...
« Odpověď #20 kdy: 19. 08. 2018, 10:11:54 »
No to se teda nespoleha na dynamicky invoke, s nim to nema nic spolecneho, lambda je cukr pro vytvareni anonymni instance (funkcionalniho) interface, ktery se predava jako parametr. Kompilator predela lambdy do normalniho javovoskeho kodu, zadna reflexe tam neni.
invokedynamic není reflexe, je to „nová“ (od Javy 7) instrukce JVM. A pro lambdy se opravdu používá. Viz java.lang.invoke.LambdaMetafactory.

Re:Existuje jazyk, ktery...
« Odpověď #21 kdy: 19. 08. 2018, 15:47:42 »
Musí to tak bohužel tímto stylem být, to prostě nejde jinak.

nemusí. Můžeš pokaždé vracet stejný objekt a jen měnit jeho stav. Většinou se to tak dělá. Říká se tomu builder pattern.

https://jlordiales.me/2012/12/13/the-builder-pattern-in-practice/

můžeš dokonce vracet singleton a přidávat routy do nějaké kolekce v něm.

Dotaz jsem pochopil tak, že tazateli vadí vytváření toho objektu v builder pattern. Což potvrdil. IMHO jen pokus o trolling.

aaa158

  • ***
  • 238
    • Zobrazit profil
    • E-mail
Re:Existuje jazyk, ktery...
« Odpověď #22 kdy: 19. 08. 2018, 17:55:34 »
Premature Optimization Is the Root of All Evil.