Het herstel van de fabriek, het gebruik van Delphi

, en in een aanvraag kan leiden tot een hoop kan worden vertraagd, met een snelheid van hergebruik van voorwerpen van verschillende grootte. Veel van de problemen.Met behulp van een fabriek die het voorwerp van het voorwerp, en het herstel van de gevolgen van een minimale fragmenten."De herbruikbare software" ontwerp - model een model is in de "van herbruikbare OO - element" fabriek, hier tot doel en ik hem onlangs nog gebruikt.De reden?Een stukje geheugen probleem in het analoge systeem, met behulp van een groot aantal voorwerpen om de digitale array.Met een paar cijfers - type, in de vaste maat van 1500 * 1 tot 50 × 10 in digitale of gehele of dubbelspel.Deze worden gebruikt in een gesimuleerde berekeningen van meer dan twee jaar, het creëren van gegevens uit de historische gegevens van 472 simulatie van de dag.Elke dag, de gegevens afkomstig zijn uit een database, behandeld en bewaard.,, ondanks de algemene controle op lekkage, software die slechts een simulatie van de ramen dag uitwisseling van documenten.Lekken worden zorgvuldig volgen en uit de weg te ruimen, maar ik heb haar nog steeds in gevaar.De aanvraag niet langer dan ongeveer 30 dagen voordat het een simulatie, heeft de helft van de nt voor het dossier - dat in een systeem van 512 bits geheugen.Een nauwgezet onderzoek blijkt dat in elke dag werken, geheugen is de toewijzing van 5 tot ongeveer 80MB en opgelopen tot ongeveer 500 miljoen keer.Blijkbaar, is niet een kwestie van 512 MB spelen, maar kijk naar Windows NT van de taak van een manager blijkt dat steeds meer geheugen, verbintenissen,,,, het probleem is simpel, het is de schuld van stapel puin.Dit zou gebeuren in vele verschillende voorwerpen worden gecreëerd, dan worden vernietigd.Als elk object wordt gemaakt, zal het verbruik van het geheugen van de berg.Als het doel is ontstaan, en de vernietiging van de omgekeerde volgorde, het mag niet gebeuren, want alle vrijgelaten geheugen kunnen worden samengevoegd tot één groot blok.Maar in een systeem, een groot aantal object creëren en vernietigen... Zal nooit symmetrisch is - mijn toepassing kan gemakkelijk worden er 50.000 object in het geheugen, tegelijkertijd.Dus als een object vernietigd, zal de aanwijzing van de vrijlating van blok toegevoegd aan de lijst in een vrije, terwijl andere geheugen verzoek worden gedaan, het raam te proberen deze verzoeken aan de lijst worden vrijgelaten.De breuk in een groot deel van zijn eisen en de daarop volgende vrijlating MB, gevolgd door een kleinere stukken verzoeken.Dit is de lijst van de vrijheid is waarschijnlijk de MB uit het eerste blok, maar niet gratis.En dan een grote MB blokken, een ander verzoek, kan zij niet van de tafel vrij bevredigend, en daarom uit de reactor.Als het de vernietiging van de periode /groot genoeg tijd, de grote hoop is in kleinere; fysieke herinnering zijn uitgeput, en een virtueel geheugen te vervangen.Het raam... Geheugen (en deskundigen) is heel slim. - het moet veel voor het verkrijgen van het fragment.Maar in een groot aantal worden gecreëerd en de vernietiging van de voorwerpen onder grote druk, geheugen manager zal geleidelijk in de herinnering te lopen, als het raam van de vrije werking van het geheugen, te beginnen in het geheugen van de uitwisseling van prestaties op de schijf van pagina 's, moet een neus operatie.Je kunt blij zijn van toepassing op 100% een centrale verwerkingseenheid, tot de uitwisseling te beginnen.En dan een dodenmars die misschien de CPU 's op 7, voor altijd op de vlucht.Een ramp.Microsoft heeft veel moeite, om zo efficiënt mogelijk de geheugen - manager.Bijvoorbeeld, in de nt, een of twee fasen in het proces, het behoud en de indiening van het geheugen.Als je de aanvraag moet 100 megabytes, dit is als de toepassing van de belasting.Maar alleen als herinnering aan toegang tot opslag blz.Als je meer wilt weten dan je zou moeten weten over dit thema, beveel ik dit boek nt, Microsoft News laat David Solomon versie is een latere versie, niet de eerste editie van helen custer.,,, de fabriek,, dus ik moet een niet - het creëren van meerdere object, gebruiken, weggooien en doen geen Ramen virtueel geheugen.Onlangs heb ik in een boek, en ik denk dat waarom geen gebruik maken van een fabriek, dat wil zeggen van een fabriek van voorwerpen, het creëren van een bepaald object.En toen ging ik naar een betere bescherming van het milieu de doen, dus het is niet de vernietiging van hun problemen in verband met het herstel van gebroken en niet voor alle produkten.De taart op het ijs is uitbreiding van hun capaciteit om de fabriek kan zonder verlies van toegang tot de snelheid. In plaats van een fabriek van alle soorten, nam ik een eenvoudige manier, door naar de fabriek als een object van het creëren van parameters.Als de fabriek wordt aangewezen, kan je het voorwerp van de eerste categorie en de opslagcapaciteit van de fabriek.Dit kan door een beroep te doen op de omvang van de veranderingen op de growfactory methode.Stel ik voor dat je in de speciale (!)De situatie van de banden,.,, in de fabriek van elk voorwerp is noodzakelijk, zodat de fabriek voor de vervaardiging van goederen "(vom) moet dalen, zodat tfactoryobject TObject klasse.Dit is een fabriek, is de verwijzing naar de "verzegeld" alle FMOs laten weten dat het gebruik van het herstel van de fabriek het voorwerp zelf.,,, in plaats van het creëren van een aanvraag om een object van de fabriek door een beroep te doen op het juiste requestobj voor de terugkeer van een voorwerp, het recht op het gebruik van TClass je terug voor de omzetting van de categorie ".Tot slot, als je klaar bent met de methode van het recycleself gewoon bellen.Niet creëren of vernietigen, met uitzondering van de fabriek zelf, hoe het in zijn werk gaat, hoe het werkt, als de fabriek wordt geschapen, wanneer alle objecten zijn in een aangrenzend blok te creëren.Een TList (fblocklist) die elk blok een adres.Elke keer als je een nieuwe groei van de fabriek, de blokken worden opgericht en toegevoegd aan de lijst.Het creëren van een bepaald aantal voorwerpen voor het gebruik van addobjects ram.Als je schrijft deze code moeten beseffen dat alleen een TObject (ADD.) is niet voldoende om het object.Je moet altijd vroeg objectclass. initinstance (ADD.) om die te veranderen in een "passende" van het object.En alles is nul, nul, maar nog belangrijker is het om vMt.,,, de fabriek heeft ook een andere TList (ffreelist) in het bezit zijn van een per een niet met het adres van het voorwerp van de,,,, alle ezels in de particuliere addobjects fabriek die voor werk doen.In blok creëren voor elk voorwerp, dat de aanwijzing van de per voor het voorwerp van een factoryobject voor het creëren van object.Dit moet een tfactoryobject afkomst.Doelst. Zijn doel referentie en banden van de productie van de fabriek.In de buurt van de verhoging per dan onder een van de doelstellingen fsize.,,, je krijgt een object van de code in een ffreelist request_obj referentie aan het einde van het eerste verzoek en de terugkeer van het object.Recycling is integendeel; het zal de verwijzing naar het herstel van het voorwerp van ffreelist.Er is een ding om te onthouden.Als een fabriek voor de vervaardiging van voorwerpen in de fabriek gebruikt, zonder vermelding van het doel, maar zijn geheugen is opgenomen in de fabriek.Met behulp van de fabriek, dat je de vervaardiging van voorwerpen en niet als vervanging van de normale, creëren en vernietigen.Je niet leiden tot het ontstaan of de vrijlating van hun, en je gaat alleen op verzoek van de betrokken fabriek object.Tenzij de fabriek leeg is, of dit zal nooit werken.Je moet de code te wijzigen - in de constructeurs en verschrikkelijke beëindiging van routine - code.Er zijn twee methoden.,,, 1) als het doel is een eenvoudige creëren geen parameters van de fabrikant, kan je het starten van programma 's en het schrappen van een erfenis; dekking tot noemen.De fabriek is altijd als een object noemt de ondernemers methoden vereist.Bij verstek, dit niet maar je kunt op deze dus ervan zal automatisch op elk voorwerp van de eisen van de fabriek. En als je de originele, 2) het creëren van parameters, het te hernoemen naar soortgelijke - en het schrappen van die telefoon.Als het doel is het verzoek om uitstel van de procedures starten, zoals myroutine. - (...), en, als het doel van de code van de verschrikkelijke, het te hernoemen naar de voltooiing van de procedures voor de recycling van materialen, die automatisch wordt genoemd.Ondernemers doen maar niet vergelijkbaar met het creëren van een /vernietiging van vernietiging mechanisme voor de bouw van de bagage.,,, een beetje gek, ik begrijp het, voor een deel van de wereld in Delphi standpunten te creëren of een deel van de fabrikant is in twee delen volledig tot doel de parameters.In de twee delen van de methode, de fabrikant is het creëren van een blanco voorwerpen en zullen later in een methode.Ik denk dat de methode van de fabriek is vastberaden in de kampen, en, toen de fabriek vernietigd, alle toegewezen blok werd vrijgelaten.In deze fabriek voor inspectie, in vrijheid, het aantal voorwerpen en de capaciteit van de lijst.Als u bent vergeten een recycling van alle objecten, dat zal bijdragen tot de verbetering van een van de uitzonderingen,,, procedures, dat de voordelen van de fabriek.Op het werk ben ik een aanvraag in verschillende hoeveelheden van verschillende grootte, maar een van de programma 's van 15.000 zullen niet worden gepubliceerd.Na de test en een beetje fout, ik heb een korte procedure kan aantonen dat de stukken.Dit hangt echter af van de omvang van de verschillende voorwerpen, hoeveel, beschikbare geheugen en die tijd.Ondertussen, puin lijkt meer snel in het NT tot 98 blijkt dat een beter beheer van de geheugen misschien 98.Als de werking van het creëren en vernietiging van een groot deel van de objecten dubbele aantal dagen voor een bepaald aantal dagen.Het is hetzelfde gedaan met behulp van een fabriek.Elke dag is een weergave van de frequentie en de duur van tchart.,,, ik heb drie vormen van het object, is gedaald van ttestobj van tfactoryobject.Doel is de omvang van de kleine 2k, medium en grote is 40K 800.000 dollar, maar de omvang van de constante definitie, kan gemakkelijk worden veranderd.Procedure voor de toewijzing van de normale omvang aan de fabriek van voorwerpen met een andere omvang.Deze twee doelstellingen met hetzelfde aantal objecten, drie het voorwerp vormen van een 17406 gelijk zijn aan de omvang, dus een kleine voorwerpen, 873 middelbaar en 43.In het proces van het creëren van voorwerpen timeoneday die werden gecreëerd en toegevoegd aan de lijst.In de vrijlating van hun aan het eind van de dag, een dag van dit proces wordt herhaald.,,, is ook het gebruik van drie fabrieken voor alle producenten van een factorydata toe te voegen aan de lijst van onderwerpen.P - 400 100 dagen in de werking van de fabriek (normaal zijn en gericht zijn op het creëren van tijd enigszins zijn gestegen.Opmerkingen van de normale gecreëerd heeft bevestigd dat deze twijfel - is gestegen van minder dan 1000 dagen van het gebruik van de werking van de fabriek van 100 dagen van de normale en de fabriek te testen.Ik wil, die het gevolg is van de toegenomen als gevolg van de versnippering van de uitwisseling van invloed zijn op de pagina 's van de twee processen.Andere combinaties van de grootte en het aantal van de voorwerpen in Windows' 98 niet gebroken,,, realiseerde ik me dat het gebruik van de gegevens, die zijn factorydata TList veranderen na herhaalde toevoeging, realiseerde ik me dat ik de bal en de vrijlating van 18000 meer fragmenten.Ik pleit niet voor je tstringlists volledig in de code is zeer nuttig, zoals tlists), maar als je te manipuleren van grote hoeveelheden goederen, het zou beter gebruik te maken van hun eigen structuur van de tabel.Als je wil TList of tstringlist dus, misschien wel de beste structuur nul punten volledig gevuld, zodat de capaciteit en het gebruik van een aantal = integer, hebben de laatste aanwijzing index.,,, deze procedure ook bevestigd dat de fabriek in de configuratie en het schrappen van snel - gewoonlijk 30 msec 18.000 object in plaats van 870 milliseconden normale creëren, /geschrapt,,,,,, ------------------------------------------------, over het artikel verscheen voor het eerst in Delphi ontwikkelaars Magazine.Sources.zip,



Previous:
Next Page: