Vra

Ek weet dat .NET is JIT saamgestel om die argitektuur wat jy loop op net voor die app lopies, maar wel die JIT samesteller optimaliseer vir 64bit argitektuur glad?

Is daar enigiets wat gedoen moet word of beskou moet word wanneer die programmatuur 'n app wat sal loop op 'n 64bit system? (Dit wil sê Will behulp Int64 werkverrigting te verbeter en sal die JIT samesteller outomaties Int64 werk op 32bit stelsels maak?)

Was dit nuttig?

Oplossing

Die 64bit JIT is verskillende van die een vir 32bit, so ek sou verwag 'n paar verskille in die uitset - maar ek sou nie oorskakel na 64bit net vir daardie, en ek sou nie verwag om veel spoed te kry (indien enige) in CPU tyd deur oor te skakel na 64bit.

Jy sal 'n groot prestasie verbetering agterkom as jou program 'n baie van die geheue en die rekenaar het genoeg geheue om tred te hou met dit. Ek het gevind dat 32bit NET programme is geneig om te begin gooi uit geheue uitsonderings wanneer jy rond 1.6gb in gebruik, maar hulle begin om die skyf thrash weens blaai lank voor dat -. so jy eindig om I / O gebind

Basies, as jy bottelnek is CPU dan 64bit is onwaarskynlik om te help. As jou bottelnek is is geheue dan moet jy 'n groot verbetering sien.

  

Sal die gebruik van Int64 werkverrigting te verbeter en sal die JIT samesteller outomaties Int64 werk op 32bit stelsels maak

Int64 werk reeds op beide 32bit en 64bit stelsels, maar dit sal vinniger hardloop op 64bit wees. So as jy meestal verwerking van syfers met Int64, wat uitgevoer word op 'n 64bit stelsel moet help.

Die belangrikste ding is om maatstaf jou prestasie.

Ander wenke

Dit is 'n goeie artikel oor die onderwerp, deur een van die mense wat op die 64 bit JIT gewerk. Basies, tensy jy absoluut die adres spasie nodig dat 64 bit kan bied, of nodig het om 64 bit wiskunde te doen, jy sal waarskynlik verloor prestasie. As wysers is groter, is die kas effektief gehalveer, byvoorbeeld.

Ek het opgemerk 64-bit 'n baie stadiger.

Soos reeds gemeld die 64-bit JIT samesteller optree anders as die x86 JIT samesteller. Die x86 samesteller sal voordeel trek uit 'n paar optimalisaties dat die x64 een nie doen.

Byvoorbeeld in NET 3.5 die 32-bit JIT sal funksie inline oproepe met structs as argumente, maar die 64-bit JIT nie.

In die produksie-kode wat ek gesien het x86 bou loop so veel as 20% vinniger as x64 bou (met geen ander veranderinge)

Om op te som, te gebruik 64-bis slegs indien

  1. Jy moet die ekstra geheue en daar is geen manier om dit.
  2. Jy program bv wetenskaplike programme en moet die verhoogde wiskunde presisie

Op elke ander aspek, soos van vandag, die 64-bit samesteller in NET is 'n stap af.

Performance optimalisaties gedoen in die NET opstellers is 'n groot probleem.

Performance knelpunte sal ongeag of die argitektuur is 32- of 64-bit dieselfde wees. Prestasie probleme is geneig om die resultaat van sub-optimale algoritmes wees -. Die keuse tussen 32- en 64-bit tipes sal nie beduidend beïnvloed prestasie

Die belangrikste is, moenie probeer om die prestasie van iets te verbeter voordat jy dit gemeet. In die besonder moet jy die kode profiel te bepaal waar jou prestasie knelpunte is.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top