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.

Kapcsolódó cikkek