praegune kellaaeg 16.06.2024 17:27:41
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
uu
HV vaatleja
liitunud: 16.08.2015
|
10.12.2016 13:34:25
C++ vector |
|
|
Kumb variant peaks olema C++ keelega kiiruse poolest parem geneetilisele algorütmile mis cache mällu mahub, kas kui double väärtust võtta ~10-20 osalisest vectorist (enamasti kasutab ainult esimest elementi ja väiksemas osakaalus hiljem teisis elemente) või kui esimene element teha eraldi double ilma vectorita ja vähemal osal kasutada vectori elemente?
Praegu kogu algorütm vectori peale üles ehitatud aga kui suur kiiruse erinevus võib tekkida kahe variandi vahel esimese elemendi kättseaamises?
vec[0-10] ( [0] esimene element üle 1000 korra rohkem kasutatud)
või
double esimene (üle 1000 korra rohkem kasutatud)
vec[0-9]
|
|
tagasi üles |
|
|
napoleon
Unknown virus
liitunud: 08.12.2008
|
10.12.2016 15:54:41
|
|
|
kas kirjutad koodis vec[0] või esimene, on tegelikult täpselt sama. Kui kompilaator selle masinkoodiks teisendab, siis on tulemus täpselt sama ehk öeldakse mine võta selliselt mäluaadressilt väärtus.
Mõnevõrra aeglasem on selline asi:
int i = 0;
teed midagi vec[i]-ga.
Kui rohkem huvitab mis karul kõhus on, siis võid omale ollydbg sikutada ja uurida mis exe failis siis täpselt tehakse. See milline masinkood tehakse oleneb ka konkreetsest kompilaatorist ja selle seadetest.
|
|
Kommentaarid: 76 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
|
uu
HV vaatleja
liitunud: 16.08.2015
|
11.12.2016 11:41:16
|
|
|
Ollydbg olemas aga pole ASMiga pikemalt tutvunud kuna väga aeganõudev programme aste haaval läbi lugeda ja kohta otsida exes. Ehk kunagi jõuab.
Qt creator näitab ka ASM ja peaks leidma kindla punkti lihtsamalt.
Kui kiirus sama ei hakka esialgu asjatult programmi keerukamalt loetavaks tegema.
|
|
tagasi üles |
|
|
matik
HV kasutaja
liitunud: 28.05.2008
|
15.12.2016 16:25:15
|
|
|
Kui sa optimeerid kiiruse peale ja seal on pudelikael, siis alustama peaks ikkagi profileerimisest, nt linuxi peal kasutad "valgrind --tool=callgrind" vms ja tulemus sööta kcachegrind-i.
Memory ja cache osas - abiks on ka hea lugemine, näiteks aegumatu kirjatükk siit: https://www.akkadia.org/drepper/cpumemory.pdf
|
|
tagasi üles |
|
|
uu
HV vaatleja
liitunud: 16.08.2015
|
15.12.2016 17:19:21
|
|
|
matik kirjutas: |
Kui sa optimeerid kiiruse peale ja seal on pudelikael, siis alustama peaks ikkagi profileerimisest, nt linuxi peal kasutad "valgrind --tool=callgrind" vms ja tulemus sööta kcachegrind-i.
Memory ja cache osas - abiks on ka hea lugemine, näiteks aegumatu kirjatükk siit: https://www.akkadia.org/drepper/cpumemory.pdf |
Callgrind linuxil olen katsetanud ja cache simulatsioon ka aktiveeritud, aga peab veel uurima et paremini infot statistikast välja lugeda.
Praegu peaks algo ilusti L3 cache sisse mahtuma.
|
|
tagasi üles |
|
|
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|