efikkan Skrevet 15. januar 2006 Del Skrevet 15. januar 2006 Hei Finnes det noen versjon av Borland Delphi som støtter dobbelkjerneprosessorer? Eventuellt hvordan kan jeg benytte det? Jeg takker for alle svar. Lenke til kommentar
john_h Skrevet 16. januar 2006 Del Skrevet 16. januar 2006 Denne støtten har nok vært i Delphi ganske lenge Å skrive programvare som utnytter en dobbelkjerneprosessor er som å skrive programvare som utnytter to (evt. flere) prosessorer; du må dele opp oppgavene i forskjellige tråder (threads). Et søk på google vil nok kunne gi en god del tutorials. Lenke til kommentar
efikkan Skrevet 16. januar 2006 Forfatter Del Skrevet 16. januar 2006 Jeg har søkt i timesvis etter guider og tutorials. Så om du kan være så vennlig og linke til et enkelt tutorial som viser prinsippet så vil jeg være veldig takknemlig. Lenke til kommentar
DidzisK Skrevet 17. januar 2006 Del Skrevet 17. januar 2006 Se under Demos i Delphi mappen. Demos\Threads i eldre Delphi versjoner, Demos\DelphiWin32\VCLWin32\Threads i Delphi 2005 og jeg tipper i 2006 også. Ideen er veldig enkel - du lager en klasse som arver fra TThread og forteller hva denne skal gjøre (Execute metode). Så lager du et objekt av denne typen og setter OnTerminate til den prosedyren som du ønsker å kalle når tråden er ferdig. Jeg pleier å kalle Create med Suspended = True, slik at jeg kaller Execute eksplisit, når det passer meg (som regel er det etter jeg har assignet OnTerminate). For å utnytte det at CPUen har flere kjerner, lager man flere trådobjekter, ikke bare ett. Lenke til kommentar
efikkan Skrevet 17. januar 2006 Forfatter Del Skrevet 17. januar 2006 Se under Demos i Delphi mappen. Demos\Threads i eldre Delphi versjoner, Demos\DelphiWin32\VCLWin32\Threads i Delphi 2005 og jeg tipper i 2006 også. Ideen er veldig enkel - du lager en klasse som arver fra TThread og forteller hva denne skal gjøre (Execute metode). Så lager du et objekt av denne typen og setter OnTerminate til den prosedyren som du ønsker å kalle når tråden er ferdig. Jeg pleier å kalle Create med Suspended = True, slik at jeg kaller Execute eksplisit, når det passer meg (som regel er det etter jeg har assignet OnTerminate). For å utnytte det at CPUen har flere kjerner, lager man flere trådobjekter, ikke bare ett. 5451525[/snapback] Og fordelingen mellom kjernene vil skje automatisk? Lenke til kommentar
DidzisK Skrevet 18. januar 2006 Del Skrevet 18. januar 2006 Ja, det er det som er meningen med WindowsXP - at den fordeler arbeid mellom prosessorene. Jeg lekte litt med den der Threads demoen og jeg ser at begge CPUene får hopp i TaskManageren. Det skjer ganske fort fordi jeg har dobbel Xeon maskin , men det er synlig. Med mindre du setter "affinity" for programmet ditt til bare en av CPUene skal OSen forsøke å fordele arbeidsmengden mer eller mindre jevnt mellom alle fysiske og logiske (dobbelkjerne og hyperthreading) prosessorer. Lenke til kommentar
efikkan Skrevet 18. januar 2006 Forfatter Del Skrevet 18. januar 2006 Ja, det er det som er meningen med WindowsXP - at den fordeler arbeid mellom prosessorene. Jeg lekte litt med den der Threads demoen og jeg ser at begge CPUene får hopp i TaskManageren. Det skjer ganske fort fordi jeg har dobbel Xeon maskin , men det er synlig. Med mindre du setter "affinity" for programmet ditt til bare en av CPUene skal OSen forsøke å fordele arbeidsmengden mer eller mindre jevnt mellom alle fysiske og logiske (dobbelkjerne og hyperthreading) prosessorer. 5458626[/snapback] OK, takk. Jeg får prøve det så snart jeg får muligheten. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå