OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 20 Октябрь, 2017 06:27

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2012 00:51 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8821
Откуда: Россия, Орёл
Например:

Код:
   PROCEDURE Test*;
      VAR dat: ARRAY 4096 OF ARRAY 2 OF ARRAY 2 OF INTEGER;
   BEGIN
      HALT(0)
   END Test;


- дамп выкидывается 3 минуты...

Профилировка показывает, что 0.99*0.75 времени проводится в TextModels.StdContext.Pos.
Действительно, StdFolds постоянно дёргает context.Pos()...

Такая вот хрень.

Думал, что у меня зависание. А на самом деле обычный NIL, только дамп 3 минуты открывается... При этом прерывание не поможет, т.к. оно тоже открывает дамп...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2012 01:40 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8821
Откуда: Россия, Орёл
Возможное лечение:

Код:
   VAR
...
      lenLimit: INTEGER;
   ...
   PROCEDURE ShowArray (a, ind: INTEGER; desc: Kernel.Type; ptr: ArrayPtr; back: RefView; VAR sel: Name);
   ...
      ELSE
         t := eltyp;
         WHILE FormOf(t) = 12X DO t := t.base[0] END;
         IF FormOf(t) # 0X THEN
            OpenFold("#Dev:Elements");
            i := 0;
            WHILE i < MIN(len, lenLimit)<<<<<<<<<<<<<<<<< DO
               Strings.IntToString(i, str);
               name := "[" + SHORT(str$) + "]";
               ShowVar(a, ind, f, 1X, eltyp, ptr, back, name, sel);
               INC(i); INC(a, size)
            END;
>>>>>
            IF len > lenLimit THEN
               out.WriteString("Показаны не все элементы массива. Для настройки числа включаемых в дамп элементов используйте команду DevDebug.SetLenLimit(N). Большое число показываемых элементов для массивов сложной структуру может повлечь долгое формирование дампа.")
            END;
            out.WriteSString("   "); CloseFold(TRUE)
         END
      END
   END ShowArray;
   ...
   
   PROCEDURE SetLenLimit* (limit: INTEGER);
   BEGIN
      lenLimit := limit
   END SetLenLimit;

BEGIN
   ...
   lenLimit := 64
END DevDebug.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2012 08:03 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8821
Откуда: Россия, Орёл
Но, блин, откуда же берётся такая пауза?

Для массива, как в тестовом примере, нужна не квадратичная, а какая-то четвётой или пятой степени сложность по вызову context.Pos(). Надо проанализировать....


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2012 13:26 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8821
Откуда: Россия, Орёл
Распечатка в дампе памяти массивов с большим числов элементов, которые сами являются структурами, происходит очень долго.
Отсюда, видимо, иногда жалобы - "у меня не работает Ctrl-Break" (кроме Wine, где он действительно не работает). Он-то работает, да вызывает ещё один дамп, что приводит к ещё большей задержке. А уж 3 минуты никто ждать не будет, считаем, что "зависло" и мочим процесс.

Пример:
PROCEDURE Test*;
VAR dat: ARRAY 4096 OF ARRAY 2 OF ARRAY 2 OF INTEGER;
BEGIN
HALT(0)
END Test;

Как показывает профилировка, основную часть времени занимает выполнение TextModels.StdContext.Pos(). Эта процедура активно используется в StdFolds. В ней для вычисления позиции требуется линейный поиск объекта (если позиция не закэширована).

Как показывает дальнейшее вскрытие, Pos() вызывается через DevDebug.CloseFold -> StdFolds.Fold.Flip().
Стоимость одного Flid() - 9 Context.Pos().

Соответственно, если при формировании дампа избежать переключения состояния вкладок, для чего использовать специальный стек для вызовов OpenFold/CloseFold, то проблема будет решена.

Решение проблемы почти идентично для DevDebug и StdDebug. Однако в DevDebug для порождения временного буфера используется TextModes.CloneOf(StdLog.buf), а в StdDebug - просто TextModels.dir.New(). При исправлении данные различия сохранены.

Патчи для DevDebug/StdDebug:
Код:
StdCoder.Decode ..,, ..,y0...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
 hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX
 7.2.s,c,T,,6.5Qw7uP51QCPuP7PNN9F9vQAy1xB.gdj,UBxhYhAbf9P0G2sIdvPZntgcghghZ
 cZRC8T0E.Eeu0H.Ne92.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708T,U..w.oyhU.
 2U18J99SqorGqmQCbWBxhYFWUl1UnNHEWUmr.6.69w,2zfU.2.4ELK086.QC18RdfQHfMf9R9v
 Q7ONb17.,.D,0.p.0.4E.6.JFcCJ,U.Yr0.dzzzzz1cUZT1E.sAE.c4E.k.Ue64VT.E.0t.U,U
 ,U.okRI.,tF3E,5zdGLmmoouqpCLLmoouqpGomC5C.2.812.a02.1M6sId9N5OP7vQRtHVPNR9
 FTvMFt77ONhv9PuP7v97ON3PRDv7HF,8Mtr.0E.sAE.c4E.szE.e0c.6YU6U,2.oE.8T5E.0.N
 V.2.2,2..161Exzzzzz.8.4E.EL9G,2Y5VlX4xhgZgnpZ4xhgZg2hgnRA.,UOK,m.iL3E.0.sU
 Zz0E..y.qJ3U.U1b.Ikmj,6.w22U.EBU.U,.J,2.0E6,1.1cUZT16.,Ub.,UO.,.16.c8mLT5.
 2UE0q58E,9D2U.ELU.EBU.kzV.I3.0E6,,.JSq1ESuz.Ikmz,6.Q6Y,A36..522U...L.0.A.w
 z0IF0E,0.,cm..2.i0m.4,0E.A.6U2.k.O.8.0EZ,.2U.Ec9.N.vh.0.,.QEU..w,wn0.,.h,8
 6E..UO.,.16.c8U.E.07sL3UzDVEJeDRc3ZcJJe33YD3iZph4xhg76F7OH9N7PNRfC,NEZeI1O
 K,tHB8658G1eIHtCPM0HcJ1eI,dNT9PeHECJuo6QCkR0GueHEGpmWLuUglaUv2YrJbUYeZ3D4K
 s0rm8rtuGXyKtqqkGLuKKtin4aEVKoXaIbqk2aEWaqkmqrSKLqok0rdGLtaKrSKIWqoG4mGEWq
 oG4amRq.d96pND,7J99SwBmqtQcgxhihgDpgcQeoZgAxhbpZWhiaBZvg,SLLCoruKrKqlGLeyK
 IGrIiHESLLSJtaKuKqdGLta4..BvPN9N,dCvldGLmO2CbYBhmpZChgr3ZHZiY,ggs3iVphYhgY
 ZZUIYWYZUYidQbBA,TPRdf9jeQHXKBhZ78BvPNnIqk2KIbGIEyIsK4sCPM0PM0VeIT0kVmqrCr
 mOormKm0GICqrmKq4KsCLR0GVyobmoW4IbamRq.h0EREmUndFmav2YhJbUYeZ3DEqMHkRqk282
 UaVUI5.QC71..K4.UCBdABZvg,y4..M8rN1Ad43YXxhg,,7JFOFR86BvPoZ4Zhd3icAZv2Yh3Y
 ugbUwhpZiiIidZgZJiiIcVRiZ3ZdQbUwhpZCbONd9ITvQFNPR7H9fPD9RF98HN8,NFR8FPM09e
 HQcgxBUvgV,A.IUGD.CE,9z4E.0.n10.p.0.zD.2U.I3l.6.V2A.IU4V1A.M9s.E,S,C.6as.U
 EF..q0C.IU0A.4k.U.6.,cm.86E..m.4,0E.A.6U2.k.8.yz4aEf4YBAV7wBeHEGZslk.OYm,Q
 5aEqyqkGqW8LtyKtCLR0mU83AakYZUoao2YDpcUQe6xdGZe13d,tCPM00rkGLoeHE4IdUo2YDp
 6VuPZ9Rbf9VuPHfPdvCPM0HMNP9QdPSp76ROMPPNrN1HE,qk2aEnkdGrkCqpeHE42sAZ76TeF,
 dI9uETeI7O1HM0HcM9vNp76HeHdOFDOFZuCPU72hdZgYFR.Aam2bUwd4tE.2imhgqZeZ3joJbU
 .PuPYhn,gV7AV3p7rl2oA6Qp76HeH.c.oZioZBIUBAVEJ8.y2UU2Zc,.sH.H,O3,7Rp762DEqC
 5kRcE.G2kaEu85.Y3BvPNndG5iJnyKq6Qve9FPO79NA3cNEu.EscM9vN,dCv76EcyqtWmIin4.
 YC.2C0LtKKvUUIbx.85o3.PUo,d0P0Cb1,T0Y7IA.TXiQcjpB..HeH588BvPkIqk2EEy2Uvk42
 8.Q6.0GIC4ER.M8EfEnEREmO2Cb47PiHEG52DEqMHkR00GZslk2CcF85cQrV0,kWCIIOqrsIQb
 BkYO2.,,qk2AVaVUI5C3ktYA..sMT9PN199NN76krKLuICc9.HtCPM0akrkV.Eny4b8R.6Qv0E
 wAZv.kf..A3..C3EnkdG5.05F1.KIaCpWqk2ak2G5Y8gdjFqCb1,O4Y7.k2S5.6R2Yr,..YC.2
 C..O400C3B0bHm..UZ3D.Uol4EuUjVm,.i1wBQ6.oAQeo,UkFs.A3.w8cJ.A3EnkdG5.05.oZ7
 phnhgmZicwhpZCV0mGEGLK0GMmGEGLLmomu4kRUjVH,whpZCZ1.oZAhA.PM0HMFRmRqU7oA22Q
 8Un7N.Cqrm4YZUIYWEb.wBw8..H,O4CJu.Es.UUUCBdAhV7g60mV.sC8k4qk.Wzzzzzh.AU.E.
 ue0.IyD.,UfUAUF.,k.U.G..1M.M.,U.oE22E5E.0.50,6.A36.4kEkdsE.Y6sId9NTNHT9NG2
 .F.0.,cV..2.m00.W.0.U,Y,,Uu13.16.cf.s1E.6TJUAURV.2U..C6E..y.yH3U.Uta.IEU.k
 HE.0.p.0.4.I3.0E6,1.1cUU.2.S02.e,2.AU.Ue6T6.,E.07MTc.322U.EL2.0.p.0.zD.6.J
 ,U.2GE.EZ,IEU.kVE4kIU..QEE.0..Q,6.k.kz9.IU.E.eA..,UfUAUFU.2.1.06,.AU4U0U.I
 N..,6.os0E4kN9.,E..526..T.fg.E.EPU002..c4E.k.0.e06.2UE0KJ,sz.UDV4VU2Zc,eX,
 ,kV.cJ.e1o6QCBGqQbU.WbBVgRCP0i1EwMM05Et.ZvC.EWa4MHEtUc,mWc,a0YC6Jkr6PbHmc9
 kIi1S5.6R22.b0..oA2Yukd.CbY,sI.gA.I2YCq.T1UK,kIq.sH.in4ak428.Q6.0GIC4ER.M8
 Ef.I5YAsQOYgtC,NPEw.NXB,rN182UaVUI5.QC71..K4.UClIUj,..amRkYO2.,,0GnEL.MPkr
 EtUi.QbUwBQ8Uh,.,,g6Q6.in44.IU6D.C.E.0.n10.p.0.zD.2U.I3l.0U.2Gk.E,O2C.M9s.
 E,S,C.cX,.UEF.C.M9s.E,8.4.6.2U81cU.,.61M26.,k.U.G..1c.2Uzj,M1wBe1W511cF85k
 RM0N185I5.X7Ao4kdW2UvUkBA.6BEcIC.k2K4..3U7oAQeoVu.sAUGlbU7AVW,H0.aEo.p,kM8
 1sE.2im,lHR.PuPYhn,g,K2rl2oA6Qp,.c.o3UE,UD,66F7O..y2kIUKFEG52DEqC5kRcE.G2.
 Yim,.NFnkdG5i36QvGo.H,O4YC.2C84.28AZv.Eu.Es6QoC66.85o3.PUo,d0P0CbY,M8krc95
 0..HeH.AZB.,tH.i1PEc.kV.66FtM.p,Ud.h0B1p,71Cb47PiHEG52DEqMHkR00GZslk2CcF85
 cQrV0,kW.C3r,HeF.22M1AVaVUI5C3ktYA.b0UX7Pkm.wBICc9.H,akrkV.EnkdG5.0ri.2DH,
 .j0.kI..sI.B1b8R.6Q2B.MFN0AVo,d0PuPYhn7N.a0AVr,.G5,tR...d1.V1.UaVUUH,QC71k
 d.MN..G5P.d1y485.sCkrkV.EnkdG5.05V1kI.kfUK,kI.B1b8R.6Q.EL..V0mGEEM..Q5sPsI
 .T1Z1.o3.g,KIbQbBM0B1,,b0sQG4UX,Y3Eb.wBw8..H,O4CJu.Es.UUUCl4UUQ6.iX0.k0k.0
 .,cf3d...,UJI.m.4,2.1.06,.AU0E.0Eszzzzj0U,YxzzzzP.M.xzzzzz.hzzzzz.dzzzzz.V
 zzzzz.x5.Zzzzzz.d5.Rzzzzz8.ISM.Ewzzz,2S.Ixzzzzf.EqV,.h5.U1E.4EuVr7.ITM.Eq,
 Eozzzzj0.V54.oS.IS.2S.YRc50.p54.oR.IS.2R.oTs0.M.Ex,..YR.IS.oR.2S.oS.ISs.Ex
 V,.N5..EsV6U,YRM.EvVh.p54.oR.YSM0E.2U.oJ..,6.gt7E4EQb.2.k,,0.k52.pQ0,.,.h,
 ,cU.,..e,,E.k.Ue.E.07cKHUzjVkYcM3Yh2Yc2iXhbk2ak2akUg2Ya3ix2akoalQcpgcoAZU2
 a23fUEeK4P0CbHlVyKrGrmWbi2ej76,78VvMUnYc1Bbg2Ya3CUq2akAZU24kdG5sQSomGLc4qo
 8LE0GI0rl.VNAb7FN76B1Um2ad2Yk.C3.BGqo366,78VvMUk2b,hag2Ya,EO0nIqk40GMG223.
 V,N,.0nVaGE0HWUIVB,..R,kl.b,.Um2bd2Yk.C3kt.R,UX,0HQOIOmGEO4.d,.23.V,N,.01.
 G3q2..o3.51Q4..81.C3kt.R,UX,0nQ41.EO..F,EMEK.kOSHMaGE016JMH..EL.QAkN..6C5O
 8,,sI.bXgBBVOMH1QAEMKHN8IK0Gn05U034.C3.kb0LLGor0GEWWX,0HPOHMmGEO4.5uEH76V,
 oedhAbHWyKEkl.VNC9eBN76B1U3,UH,UjFLUUUX,0nQGnWmGE.cB..F,EMEK.kOS1.G3q2..o3
 .51Q4..W1.C3kt6P28.512apYarYZUogk,cE.sI..T0UX,0HP..Q6.o8.kl.VNC90.MF.sI.sP
 o366sMUkAbo..O1.EI.24Y3.ganQcd22UIVB,..R,kl.b,.Up2bd2Yk.G3q2..oZHhAbOOpPN,
 76F7Q51EOKHK0Gn.sB.sI.bne0Lm4KuKKE0GIQAEMGnPGHK0Gn.6C.sI.ocgFc.QAEMKnVWHK0
 Gn.cE.sI..T0UX,0HP..Q6.o8.kl.VNC90.MF.sI.sPo366sMUkAbo..O1.EI.24Y3.gan.UIV
 B,..R7I.51Q450.MB.6JMH..ELC3.QA.d,.sB.sI.bne.kl.V7B..W1.C3.B8P28.512apYckY
 ZU.U0,UH,.w7.C46Ah,.kV.Ef..512atg6.U3,UH,UjFLUUUX,0nQG1.cB..F,EMEK.kOaHQaG
 E.G3q2..oZE,QAkNQ6.U0Zad2Yk.C3kt6Pw7.C46AhtB389,dN.Q6.o8.kl.VNC90.MF.sI.sP
 o366sMUkAbo..O1.EI.24Y3.gat.UIVB,..R,kl.b,.U0,UH,QCm4T0UX,0HPanVmGEO4.50.h
 0.QAEManW..K2.C3.y4R,00C46An7B.Uq.1.u800866.,.61M2E.A.6U2.k.8.4EmV06.2TM.M
 .p5.F5.h5.Vzzz5Eo,Er,EtV0.p54.2T.2R.IR.2T.IT.ISM3Eyzzzzj,.V5.h5.d5C.,M.Z54
 .2S.oS.oR.ITc0EzV9.d54.oTc0ExV,.N5..Eu,EoVUE.oTM..61EuVLE.4ExV,.J5.d5.V5.R
 5UzDY2Ka2qb2aa2Kb24a2iV0YcZpi2hgWhC369,dAVNAZNAVdAl79,N37A47Q37A9,d.l7V18V
 z7V,8VR76FdAHd.Pc.b8R79F8qu......M1x6Vz7Vl7V18VV7Vv7Vl7Vf7VPM1,7VV7V18VzlO
 GsXGMMGMVGMRGMM2YmYkUYa24a2ab2yb2i4,tD7AA7ADyI09I0XH01GSGMMGsUAc24b2Ka2q5Z
 7V,NE7A6X7Vx7Vr7VN8VF8Vl7Vt7V,tF7AC7YvYkyYkmkaGsRGsOGMSGsOGsSGMVGMTG6NFRGM
 TGMVGMT2c2Sd2ia24Y,Zkk6DWH01mbGMNGsRGsbGMbGMVGsUGsbGME4I09I01I0DI0fH09I0DI
 01I01H0n1mGEyH01YyYksYk,NF7gD7ABWH09I01GTGsXGsOGsSYd24YoYkyYkvsA7gD7g9PM1z
 6V,8Vl7VtlO2c2KbB2YU2YEJeDR6UIhgnd8rN1,76,76,Ff4Id0Gm4au2Y,lU6BVNCh76TeF4I
 dUm2YDp6.U7p7.,V0hc5B70GE2YU6G18Hd88VN8P66,769eH786dmtQbBgVOYkkYkuYkUwb2qb
 2Kb2mPGsZGMNGMMGsOGMVGMEyX.dDGI0XH0jH0XH01I0vXmYkuYEmGEuH05I0rH0vH09XxYk1Z
 kCZkUwc2441GVYd24Ym6E7QB7ADMDWXUwa24a2i5Y5VlOI6,dA7wG7wD7gDiXxYkpYkxUp66dO
 Nlna.6N50c968Hd9,N97gE7AA7A6z7VEXGsOGMOGsVGMU24,7A7gC8YscAqXy66l7V1mTo5Y7j
 7V58Vf7V3mUw78H01mdGLmUn76Z6V,ND7QBaH01GOGsRGsb22iY5ZksMEi1q1yI01mTGMTwa24
 b2qc24b24b24Y0Zk.VlYk1ZkpcE.r7VllSGsOkSGsZGsQGMEy1WX,dC7A6xlMGMZGsOGMRGMV2
 4RN1Pc47Yu66z,p,jlZ.fFV2Yo6AiH0nYxYE6G7QB7QB7A6Z7V18VpFUGsZIc2mOYZU2ejRC0G
 NGsZwa2S7.3mUw7SI0LX.NBSH01GWKKvGomELCIqQC6N,N9x76b8RUndFc9EIaGLqE7GMTGMV2
 Y,Vy6CmXyYk,dEm2x7VdlSGMTQa2q5,dFNPO798HdC,d.3M1PM67gDuH09YmYkpYk0NEcAMDqH
 0vXg2YpYk,Zkv6C0mT26lV2ZkyYk.7D7AC028XkMDWXs66d,tlT24,7C7wB7QA7QB7gB7AA7gE
 m2zlO.plRGMbGsXG6vFQw74YyYk,VysH7QD7ACENI5rFMGMOGMTI5N76d7VrlbsFsA7gD251mT
 kRY7jFTGMN.ME7wDKX4Zks6A7wCmYxsGkUI6f7VpFEG1y2ZlZETETI4,tH.ymVmqrC569,dE7g
 D0mT26xlMQb2i4tFM2YlYk17B7QB7gE0GUGsO2d2mS2a2q30G0LX6Vx6CKXUw5..L8V,tDuX5d
 E7YU25d7VflSI6llXGsSGMT2Yo.Y6.,7C7A6b8RGomEL0GDGMOG6VFRo58XUYcZ,2YoYkv.z,,
 GToa2aa2i425TWm6EKXwMBqXxcDC10mMG678Vf7V,GM6C42uXvUrsEcE4YDFeK4P0bf958PuaD
 pA6HcM69,7A7A6ZFEC370gZUwb246A63GT6J.m47POu0AZis57AE7AC25EU24Z7VrlOg5lFQ6B
 0XxMDiYp66,8VVlPQb245DGQw74YyMF7AE7YxMBq1uG,5TeKKwQcjpBZvPN9P9fQbndGLmYimZ
 h2hgn7.X5..RtETHu.GomCrl0U1VVBB.IC...Qii..70,cw7.,.dU.2.A,,E.0..4E,5TeK4ZO
 RNPNZvQRtIIepZBG20ksH3.bf9ZORNPNG20EtD.0E.se0U56.,sc6.,k,5D.CLLC3b8Rn9P99F
 9vQ59.X5.u0n9PU.Iy56.2.U66.eJ.0U.2.8ss,UiAcoZim,9HWE.Y.2..EGE.4E.2.,.,tcpG
 .0U.YbyD.hOPAU.k.E.0.3gwU...p.0.4.I3.0E65.2..N6yY,YZPS9L6y0I,5TWkqktQcj,.E
 7U...F.,.aU.EAjot2YbQI,AzJE.nT32XD3h.2oe2H,.Tm,...
 --- end of encoding ---


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 18 Октябрь, 2015 20:55 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 1918
Откуда: Красноярск
Исправление включено в сборку центра:
http://blackboxframework.org/unstable/i ... a1.239.zip


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2017, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB