Paul Tchistov
Amikor kirakodása 1C 7.7. nagy könyvtár program befejeződik körülbelül a következő üzenettel: „msxml6.dll: Nincs elég memória a művelet befejezéséhez.” Opció kirakodás részek nem áll jól nekem. Ezért kevés optimalizált a mentesítési eljárás. Lehet, hogy valaki időt takarít meg.
Adatkonvertálási egy jó eszköz, amely lehetővé teszi, hogy gyorsan, egy egyszerű torlódás az adatok a különböző adatbázisok között 1C. Az átadást az adatok átalakítása végrehajtott maradékokat tipikus konfigurációk 1C 7.7 szabvány alapú 1S8.
Amikor ismét szembe azzal az igénnyel, hogy adatokat átvinni 1S7.7 a 1S8, majd ütközött egy probléma. Feltöltésekor nagy könyvtár (mintegy 400 ezer. Db. Minden relatív persze) Hét összeomlik a hiba „nem elég memória ...” A probléma az, hogy a mentesítési kezelés használ DOM objektum modell dolgozni XML. Ennek eredményeként az összes XML fa írni egy fájlt a memóriában tárolt. Azt is szembesülnek azzal a ténnyel, hogy a mentesítést a nagy számú elemet, minél hosszabb a munka kirakodás a lassabb fut.
Úgy döntöttem, egy kicsit megváltoztatni a feldolgozása kisülés, hogy megszüntesse ezeket a torlódás.
Az első változat. Az a lehetőség, alkotó nagy xml fájlt.
Adatfolyamként írni a fájlt a tárgy FileSystemObject Windows Script Host. A következő fejlesztések.
1. Add változó nyilatkozat
2. Állítsa be a feltöltés eljárás ()
3.Izmenit VygruzitPoPravilu eljárás ()
Mind a szöveg nem írok eljárásokat. Változások a vége felé az eljárás
4.Izmenit InitsializatsiyaFaylaObmena eljárás ()
5.Izmenit VypolnitVygruzku eljárás ()
A második változat. Optimalizálja leszállási sebesség.
Ahogy feltöltési könyvtár egyszerűvé teszi a sebesség mérésére. Úgy vélem, hogy hány perc alatt kirakott mondjuk 1000 tárgyakat. És ezeket az adatokat tett egy durva becslés a teljes működési idő. A több objektum van megtöltve, annál nagyobb a becsült időt kirakodás. 25-én - 4,5 óra. 50 ezer. - 6 óra. 100.000 - 10 órán át.
I méréseket. Drill a kódsort töltött 78% -át az időt.
UzelSsylki = VygruzhennyeObekty.Poluchit (KlyuchVygruzhaemyhDannyh);
VygruzhennyeObekty.Ustanovit (KlyuchVygruzhaemyhDannyh, NVP);
VygruzhennyeObekty.Ustanovit (KlyuchVygruzhaemyhDannyh, UzelSsylki);
Kezdetben VygruzhennyeObekty - értékek listája.
A kicserélt indexált táblázatot az értékek listája a komponensek 1C ++
Mit kell tenni.
1. Megváltozott nyitva eljárás ()
2. Változás ZagruzitPKO eljárás ()
3. Változás VygruzitPoPravilu eljárás ()
Helyek változás talált keres kulcsszó VygruzhennyeObekty
Miután ezek a változások feltölteni útmutató kivégeztek 2 és fél órán keresztül.
Mi nem volt képes megbirkózni ez a hiba ki a memóriából, amikor a FEC nem éri meg a tulajdon „nem emlékszik megtöltve. Növekvő asztal cache xml-fragmentum linkeket a feltöltött tárgyakat. Volt, hogy egy „nem emlékszik a terheletlen tárgyak” az FFP én nagy könyv.