Schijnt o.k. aan me, maar aangezien u om nieuwe ideeën vroeg, hier gaat --
- Als kwestie van pref/smaak zou ik veel eerder de omzettingenniet-leden als houden, zodat moet ik de interface verontreinigen en geen nieuwe omzetting laten aan het systeem gemakkelijk worden toegevoegd. Maar zoals ik zei, die een kwestie van smaak misschien ben.
Zet om (Gegevens D);
Zet om (D);
- Aangezien u over het minimaliseren van serverreizen en bandbreedte sprak en toevallig de „momentopname“ uitdrukking gebruikte, is het natuurlijk om ook aan „differentiële momentopnamen“ te denken. Zo is het idee dat u een primaire momentopname neemt.
Dir pidSnapshot = procInfo->getPid (1312);
Het verschil van SnapShot* = pidSnapshot->difference ();
Momentopname:: verschil ();
Momentopname:: applyDifferential (Snapshot* D)
Zodat de manier, slechts waarden die verandering sinds laatste hebben vangt zal zijn teruggekeerd en dat reusachtige besparingen in termen van prestaties kan veroorzaken.
- Bent u zeker proc filesystem hebt geen symbolische verbindingen (bedoel ik de zelfde entiteit die verschijnt onder veelvoudige bijenkorven)? Als ja, dan is o.k. het om twee exemplaren van het zelfde gegeven te houden. Ik veronderstel het niet, zolang de waardevoorwerp van de momentopname enkel veel van belang is.
- Eerder dan het hebben van het getPid () enz. soort zeer specifieke accessors, zou het lonender zijn als u in de basisklasse kon hebben een generische reeks vondst () methodes als zegt
virtuele Momentopname Snapshot*:: vind (koordkind) {
}
Hoe ook over de basis van de Momentopname die kinderen heeft
klasse SnapshotContainer: openbare Momentopname
{
virtuele Momentopname Snapshot*:: vind (koordkind) {
}
privé:
norm: kaart *mpData;
};
- Nuttig zou zijn, als u ook een lichte maar belangrijke variatie voor vondst (), roept het verstrekt de plaats bepaalt van () die een weg (eerder dan een naam) neemt en het vuile werk van het doen van het oversteken doet.
// de weg is in deze vorm, /root/net/sockstats/tcpip6
De Momentopname van Snapshot*:: bepaal van de plaats (koordweg) {
}
- De belangrijkste verandering zou die ik zou aanbrengen de tot momentopname een verwijzing geteld voorwerp moeten maken en terugkeerde slim/refptr aan de momentopname eerder dan ruwe wijzers. Dat werkelijk heel wat macht geeft, vooral wanneer u kinderen wilt kunnen halen en hen rond houden (misschien)
klassen Momentopname: openbare RefCounted // ziet Poco:: RefCounted voor ref.
{
}
typedef RefCountedPtr RefSnapshot;
Hoop deze hulp…