Oprettet lør. d. 20. februar 2010 kl. 15:37:06

jagdos
jagdos (6.120 point. Point ude: 0)
the-gamevault.com

Variabel type til programmerings-konkurrence

Jeg deltager for første gang i en programmerings-konkurrence (dansk datalogi dyst), og jeg er kommet til det punkt hvor jeg har løst begge opgaver men gerne vil optimere dem lidt, og jeg har en mistanke om at mine programmer godt kan bruge en del hukommelse.

Derfor tænkte jeg at det vel kunne være smart at lave alle ints om til short ints og dermed bruge mindre hukommelse.

Jeg har dog fundet nogle steder på internettet hvor der står at short ints får programmet til at køre langsommere, og pointgivingen afhænger også af programmets kørsels-tid.

Faktisk er jeg heller ikke helt sikker på hvad hukommelses forbruget betyder for pointgivningen...

Er der nogen der har nogle erfaringer her?

Skrevet lør. d. 20. februar 2010 kl. 15:43:37| #1

arne_v
arne_v (1.005.658 point)
Medmindre vi taler om array med millioner af elementer, så er pladsbesparelsen ved at skifte fra 32 bit til 16 bit int's ubetydelig.

(for normale PC'ere - det kan være anderledes i en embedded dippedut)

Jeg kender ikke konkurrencens kriterier, men hvis de er fornuftige, så lægges der vægt på gode algoritmer og læsbar kode - ikke mikrooptimering.

Skrevet lør. d. 20. februar 2010 kl. 15:54:01| #2

jagdos
jagdos (6.120 point)
the-gamevault.com
Det største jeg har er nok
static short int matrix[2001][2001];

Den blev jeg nødt til at lave static for at programmet ikke skulle crashe...

Jeg valgt at definere mine arrays sådan at de i hvert fald er store nok dvs. hvis jeg får at vide at N er mellem 1 og 2000, så laver jeg et array n[2001];

Er der okay at gøre sådan? eller skal man lave dynamiske arrays?

Skrevet lør. d. 20. februar 2010 kl. 16:02:00| #3

arne_v
arne_v (1.005.658 point)
Det array har 4 millioner elementer - det er 16 MB med 32 bit int og 8 MB med 16 bit int.

Jeg gætter på at det 8 MB ikke gør den store forskel på din PC.

:-)

Men på den anden side kan du godt forsvare at gøre så store arrays til short int, hvis de ikke skal have større værdier end der kan være i en short int.

Skrevet lør. d. 20. februar 2010 kl. 16:02:41| #4

arne_v
arne_v (1.005.658 point)
Dynamisk allokering lyder smart hvis du i de fleste tilfælde kun skal bruge betydeligt minde data.

Skrevet lør. d. 20. februar 2010 kl. 16:03:30| #5

arne_v
arne_v (1.005.658 point)
At bruge en dimension på 2001 fordi index er 1-2000 derimod lyder meget slemt programmeringsmæssigt.

Skrevet lør. d. 20. februar 2010 kl. 16:16:49| #6

jagdos
jagdos (6.120 point)
the-gamevault.com
Okay, jeg tror jeg vil kigge lidt på dynamisk allokering af arrays :)

Så smid et svar og mange tak for hjælpen!

Skrevet lør. d. 20. februar 2010 kl. 17:22:43| #7


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Regex sætning i C++

Oprettet den 30. januar 2012 kl. 22.55
kjeldsted giver 150 point for svar | Giv et svar »

Bog om strukturering

Oprettet den 25. januar 2012 kl. 07.26
keepy giver 30 point for svar | Giv et svar »

Opsnap keypress globalt.

Oprettet den 24. januar 2012 kl. 16.14
xited giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger