Hans_Henrik Skrevet 21. april 2009 Del Skrevet 21. april 2009 (endret) jeg holder på med en "OT Server", og "minne forbruk" er veldig høyt prioritert for meg (server-pc'en har ~500 MB mem og skal kjøre opp til 4 forskjellige ot-servere om gangen.. hvis det ikke blir for tregt) skal lage en mulighet till og ikke "lagre" noe som helst, fra config.lua (konfigurasjons-filen) har gjort det enkelt med "if (g_config.save == 1) {Save~}" men da blir jo dette kjekket hver gang noe skal lagres, og alle funksjonene for lagring er jo fortsatt i memory noen som vet hvordan jeg kan gjøre at hvis save=0, vill ikke engang save-funksjonene bli lastet in, så det verken tar memory, eller cpu for og kjekke g_config.save hele tiden? (kan også bruke spesielt kompilerte .exe-filer da men... det blir mye mer tungvint og oppdatere ) Endret 21. april 2009 av Hans_Henrik Lenke til kommentar
Nickless Skrevet 21. april 2009 Del Skrevet 21. april 2009 jeg holder på med en "OT Server", og "minne forbruk" er veldig høyt prioritert for meg (server-pc'en har ~500 MB mem og skal kjøre opp til 4 forskjellige ot-servere om gangen.. hvis det ikke blir for tregt) skal lage en mulighet till og ikke "lagre" noe som helst, fra config.lua (konfigurasjons-filen) har gjort det enkelt med "if (g_config.save == 1) {Save~}" men da blir jo dette kjekket hver gang noe skal lagres, og alle funksjonene for lagring er jo fortsatt i memory noen som vet hvordan jeg kan gjøre at hvis save=0, vill ikke engang save-funksjonene bli lastet in, så det verken tar memory, eller cpu for og kjekke g_config.save hele tiden? (kan også bruke spesielt kompilerte .exe-filer da men... det blir mye mer tungvint og oppdatere ) Skjønnte ikke helt hvordan du har bygget om det hele. Men mener du liksom: if(g_config.save == 1){ save } else if(g_config.save == 0){ En goto-funksjon f.eks? lag en annen funksjon? } Lenke til kommentar
Giddion Skrevet 21. april 2009 Del Skrevet 21. april 2009 Jeg starter med 4 spørsmål: Hva har dette med c++ å gjøre? Er det ikke enklere å kjøpe mer ram? Vet du om det er mye å tjene på denne optimaliseringen? Kan du ikke bare fjerne kontrollen av g_config.save ? Jeg har bare litt erfaring med lua, men jeg mener at hvis du setter funksjonen til nil tar gcen den ved neste gjennomgang. Det er jo en litt annen sak om det blir så mye mindre minne ut av det da. Hvis du virkelig vil ha hastighet og lite bruk av minne så er exe tingen. Har du vurdert å kjøre serveren på et annet os en windows? Der kan du virkelig tjene mye. Lykke til Lenke til kommentar
GeirGrusom Skrevet 21. april 2009 Del Skrevet 21. april 2009 Du kan jo fint bruke LoadLibrary og FreeLibrary for å kunne laste inn og ut funksjoner av programmet ditt. Dette vil jo føre til at du kan endre på programmet mens det fortsatt er i bruk, uten å måtte restarte det...hvis du gjør det riktig altså. Lenke til kommentar
Geek_Master Skrevet 21. april 2009 Del Skrevet 21. april 2009 jeg holder på med en "OT Server", og "minne forbruk" er veldig høyt prioritert for meg (server-pc'en har ~500 MB mem og skal kjøre opp til 4 forskjellige ot-servere om gangen.. hvis det ikke blir for tregt) skal lage en mulighet till og ikke "lagre" noe som helst, fra config.lua (konfigurasjons-filen) har gjort det enkelt med "if (g_config.save == 1) {Save~}" men da blir jo dette kjekket hver gang noe skal lagres, og alle funksjonene for lagring er jo fortsatt i memory noen som vet hvordan jeg kan gjøre at hvis save=0, vill ikke engang save-funksjonene bli lastet in, så det verken tar memory, eller cpu for og kjekke g_config.save hele tiden? (kan også bruke spesielt kompilerte .exe-filer da men... det blir mye mer tungvint og oppdatere ) Hvorfor ikke bare laste ned en distro med ikke save på en offisiel bruker, altså en distro med dette innebygd som en "War server"? Ellers så kan du jo bare spørre om hjelp til dette på otfans.net eller otland.net, de har mye mer peiling på OT(open tibia) kildekoden enn noen her. Lenke til kommentar
ilpostino Skrevet 22. april 2009 Del Skrevet 22. april 2009 Hei! Emnetittelen i denne tråden er lite beskrivende for trådens innhold og det er derfor ingen god emnetittel. Jo bedre og mer beskrivende emnetittelen er, jo lettere er det for andre å skjønne trådens innhold og dermed vil det være lettere å treffe den riktige forumbrukeren med det rette svaret. Ber deg derfor om å endre emnetittel. Vi kan anbefale å lese om hva vår nettikette sier om dårlig bruk av emnetitler. Bruk -knappen i første post for å endre emnetittelen. Tråden bryter også med tre-ords-regelen. Bruk -knappen i første post for å endre emnetittelen. Om du ikke endrer emnetittel kan tråden bli stengt. Når endringen er gjennomført er det flott om du bruker -knappen ved dette innlegget slik at en moderator raskere får fjernet denne moderatormeldingen. Reaksjoner og spørsmål rundt moderering skal gjøres på PM, ikke i tråden. Lenke til kommentar
Hans_Henrik Skrevet 22. april 2009 Forfatter Del Skrevet 22. april 2009 Skjønnte ikke helt hvordan du har bygget om det hele. Men mener du liksom:if(g_config.save == 1){ save } else if(g_config.save == 0){ En goto-funksjon f.eks? lag en annen funksjon? } mente if (g_config.save) { Commands::saveServer IOAccount::saveAccount IOMapSerialize::saveHouseInfo // (og alle andre save-relaterte funksjoner her) } (eg, hvis g_config.save er av, vill den ikke gjøre noe, men funksjonene er fortsatt i der og tar plass...) Jeg starter med 4 spørsmål:Hva har dette med c++ å gjøre? Er det ikke enklere å kjøpe mer ram? Vet du om det er mye å tjene på denne optimaliseringen? Kan du ikke bare fjerne kontrollen av g_config.save ? Jeg har bare litt erfaring med lua, men jeg mener at hvis du setter funksjonen til nil tar gcen den ved neste gjennomgang. Det er jo en litt annen sak om det blir så mye mindre minne ut av det da. Hvis du virkelig vil ha hastighet og lite bruk av minne så er exe tingen. Har du vurdert å kjøre serveren på et annet os en windows? Der kan du virkelig tjene mye. Lykke til 1: OT servere er laget i c++ 2: tror jeg skal gjøre det ja 3: vell... det er ganske mange funksjoner relatert till lagring (savehouse/savechar/saveaccount/savedepot/save premium time/save uptime/skrive till MySQL server/ etc) 4: hmm 5: OS jaa!!! {nå kjører den en minsket versjon av XP som tar ~120 MB ram fult startet opp) Du kan jo fint bruke LoadLibrary og FreeLibrary for å kunne laste inn og ut funksjoner av programmet ditt.Dette vil jo føre til at du kan endre på programmet mens det fortsatt er i bruk, uten å måtte restarte det...hvis du gjør det riktig altså. da må jeg gjøre det om till DLL-funksjoner ? kunne prøve.. Hvorfor ikke bare laste ned en distro med ikke save på en offisiel bruker, altså en distro med dette innebygd som en "War server"? Ellers så kan du jo bare spørre om hjelp til dette på otfans.net eller otland.net, de har mye mer peiling på OT(open tibia) kildekoden enn noen her. tror jeg skal spørre på otfans senere, men *war-serveren* må være SQL og 7.6 Lenke til kommentar
Geek_Master Skrevet 22. april 2009 Del Skrevet 22. april 2009 (endret) Da så, 7.6 er jo litt verre å finne, spesielt sql, det finnes nesten bare xml for 7.6. Første gang jeg ser noen norske faktisk lage en 7.6 ot, trodde bare det var meg som drev på å laget OT på fritiden. Edit: Mulig jeg har en 7.6 war ot med denne funksjonen liggende på den gamle pcn min, skal se om jeg finner den. Endret 22. april 2009 av Geek_Master Lenke til kommentar
Hans_Henrik Skrevet 24. april 2009 Forfatter Del Skrevet 24. april 2009 hmm, vell jeg tror jeg bruker #ifdef 's intill jeg for tid til till og prøve og konvertere det till DLL'er 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å