HerrIlevik Skrevet 22. januar 2012 Del Skrevet 22. januar 2012 # Her brukes latin-1 koding. coding:latin-1 # To måter å importere og bruke sleep på. Hvilken er best og hvorfor? # Mulighet 1 from time import sleep sleep(1) # Mulighet 2 import time time.sleep(1) Her blir det samme gjort på to forskjellige måter. Hvilken måte er best? Hvorfor er det best? Hva krever mest ressurser av PCen? Finnes det noen måte man kan finne ut hvor mye ressurser et skript bruker? Hvor mange linjer som leses, hvor mye minne som brukes osv.. Innbiller meg at mulighet 1 er best siden den er mer spesifikk. Istedenfor å importere hele tids modulen slik som i mulighet 2 importerer mulighet 1 kun selve funksjonen som skal brukes. Dermed blir det mindre fil lesing, prosessor forbruk og minnebruk. Lenke til kommentar
zotbar1234 Skrevet 22. januar 2012 Del Skrevet 22. januar 2012 Her blir det samme gjort på to forskjellige måter. Hvilken måte er best? Hvorfor er det best? Det er ikke noe "best" i dette tilfellet -- man bruker den muligheten som gir mest mening. Dog, en ting å ha i bakhodet er at mulighet #2 vil takle reload() på modulen slik en forventer. Hva krever mest ressurser av PCen? I denne konteksten er det et lite relevant spørsmål. Finnes det noen måte man kan finne ut hvor mye ressurser et skript bruker? Hvor mange linjer som leses, hvor mye minne som brukes osv.. heapify kan peke på minnebruken. Hvorfor tror du at antall linjer er et relevant mål på noe som helst, forresten? Innbiller meg at mulighet 1 er best siden den er mer spesifikk. Istedenfor å importere hele tids modulen slik som i mulighet 2 importerer mulighet 1 kun selve funksjonen som skal brukes. Dermed blir det mindre fil lesing, prosessor forbruk og minnebruk. Det blir garantert ikke mindre fillesing (av opplagte årsaker). Det er også slik at for ethvert ikketrivielt program vil programmets egen minne/ressursbruk overskygge kostnaden av en import (uansett hvilken av de to formene man skulle benytte seg av). Lenke til kommentar
HerrIlevik Skrevet 22. januar 2012 Forfatter Del Skrevet 22. januar 2012 Til zotbar: Så du sier altså at mulighet 1 har en ulempe da man får problemer med reload() på modulen. Da sier du samtidig at mulighet 2 er best siden mulighet 1 har en ulempe. Mulighet 1 får minus poeng mens mulighet 2 får hverken pluss eller minus poeng og blir dermed stående igjen som vinneren. Flere linjer = Høyere strømforbruk Mer slitasje på harddisk eller andre lagringsmedier Ting tar lenger tid Altså får man et dårligere program. Definerer et godt program som et program som gjør det det skal så raskt og enkelt som overhodet mulig samtidig som det bruker minst mulig ressurser. Fortell gjerne mer om de opplagte årsakene du refererte til på slutten. Kanskje det blir mer opplagt for andre også da Lenke til kommentar
zotbar1234 Skrevet 22. januar 2012 Del Skrevet 22. januar 2012 (endret) Så du sier altså at mulighet 1 har en ulempe da man får problemer med reload() på modulen. Det var ikke det jeg skrev. Flere linjer = Høyere strømforbruk Mer slitasje på harddisk eller andre lagringsmedier Ting tar lenger tid Igjen, nei. Prøv heller å fokusere på relevante metrikker. ("Mer slitasje på harddisk"? Herregud... Du _vet_ at det ikke trenger å være noe harddiskaksess overhodet, ikke sant?) Fortell gjerne mer om de opplagte årsakene du refererte til på slutten. Kanskje det blir mer opplagt for andre også da For å foreta en "from a import b" må man lese a i sin helhet. Endret 22. januar 2012 av zotbar1234 Lenke til kommentar
torjeh Skrevet 22. januar 2012 Del Skrevet 22. januar 2012 Hva som er "best" i denne sammenhengen tror jeg først og fremst bør bestemmes av hva som gjør koden lett å lese og skrive. Ved bruk av mange "from ... import ..." kan du komme til å ha flere metoder med samme navn, og det kan være vanskelig i koden å skille hvilke moduler de forskjellige metodene tilhører. På den andre siden gjør "from ... import ..." det raskere å skrive navnet på metoder du bruker mange gang. Jeg ville brukt "import ... " for det meste, og "from ... import ... " hvis det er metoder jeg skulle bruke mye. Angående ressursbruk på maskinvaren har jeg ingen anelse hva som er best, eller om det er noe forskjell. 1 Lenke til kommentar
Yumekui Skrevet 23. januar 2012 Del Skrevet 23. januar 2012 På den andre siden gjør "from ... import ..." det raskere å skrive navnet på metoder du bruker mange gang. Jeg ville brukt "import ... " for det meste, og "from ... import ... " hvis det er metoder jeg skulle bruke mye. Du har også import ... as ... for eksempel import hashlib as h Så får du både lite å skrive, og du bruker ikke opp alle navnene du ville ha brukt opp ved from import 1 Lenke til kommentar
torjeh Skrevet 23. januar 2012 Del Skrevet 23. januar 2012 Du har også import ... as ... for eksempel import hashlib as h Så får du både lite å skrive, og du bruker ikke opp alle navnene du ville ha brukt opp ved from import Sant. Godt poeng! Lenke til kommentar
Terrasque Skrevet 26. januar 2012 Del Skrevet 26. januar 2012 (endret) Flere linjer = Høyere strømforbruk Mer slitasje på harddisk eller andre lagringsmedier Ting tar lenger tid Punkt 1: Filsystem / harddisk leser / skriver data i blokker (4kb er vel det vanligste). Altså om det er 20 byte eller 4090 bytes har absolutt ingen forskjell på strømforbruk og slitasje.. Virkelig... Og lenger tid? Hah, snakker vel om megabytes med kode før det har noen praktisk målbar effekt på parsing tid. Punkt 2: http://www.technovelty.org/code/arch/funroll.html *grabs popcorn* Endret 26. januar 2012 av Terrasque Lenke til kommentar
HerrIlevik Skrevet 30. januar 2012 Forfatter Del Skrevet 30. januar 2012 Takk for hjelpen alle sammen, lærte masse nytt av å lese det dere skrev 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å