Opened 13 years ago
Closed 13 years ago
#1540 closed defect (fixed)
Warning al guardar con OIS por un TimeSet no visible globalmente
Reported by: | imendez | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | normal | Milestone: | Mantainance |
Component: | OIS | Version: | 3.1 |
Severity: | normal | Keywords: | |
Cc: | atorre@…, pgea@… |
Description
Hola, al ejecutar el siguiente código:
Serie FunWarn(TimeSet fdo) { CalInd(C, fdo) }; Serie SrWarn = FunWarn(Diario); Real Ois.Store([[ SrWarn ]], "C:/warn.oza");
Me aparece el siguiente Warning:
Warning: [2573] OIS: El TimeSet no acotado Diario = fdo; depende de símbolos no visibles globalmente. Sólo los datos almacenados en la cache en [y2005m02d07,y2014m11d15] estarán accesibles cuando sea cargado
Entiendo que se debe a que el fechado fdo, argumento de la función FunWarn, no es un objeto global.
Sin embargo, si ejecuto las dos siguientes alternativas no aparece el Warning:
Serie FunWarn2(TimeSet fdo) { TimeSet fdoAcot = fdo*In(DefFirst, DefLast); CalInd(C, fdoAcot) }; Serie SrWarn2 = FunWarn2(Diario); Real Ois.Store([[ SrWarn2 ]], "C:/warn2.oza"); Serie FunWarn3(Set fdoRef) { CalInd(C, fdoRef[1]) }; Serie SrWarn3 = FunWarn3([[Diario]]); Real Ois.Store([[ SrWarn3 ]], "C:/warn3.oza");
Aparte de preguntar si existen otras alternativas para omitir el warning -excluyendo el Show(0, "WARNING")- y cuál es la más recomendada, me gustaría saber si el hecho de acotar un fechado para guardarlo con OIS es ineficiente desde el punto de vista del consumo de memoria.
En realidad el Warning que me da es por una función de la StdLib, IntervalTrend01. Al igual que esa, hay otras muchas funciones que presentan el mismo "problema" al guardar con OIS un objeto creado con ellas.
Un saludo.
N.B.: Al margen de lo anterior, el intervalo en el que OIS guarda el TimeSet en caché, [y2005m02d07,y2014m11d15], ¿de dónde sale?
Change History (3)
comment:1 Changed 13 years ago by
comment:3 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
El OIS es una foto que solo puede guardar objetos finitos. Los fechados infinitos se intentan guardar como una expresión TOL pero si depende de cosas locales difícilmente podrá ser reconstruida.
Tenga o no expresión, todo conjunto temporal tiene asociada una caché acumulativa con los datos que ha necesitado calcular en algún momento, para no tener que repetir cálculos de forma innecesaria.
Esta caché se guarda en OIS para que en caso de no poder reproducirse de forma virtual, que al menos tenga los datos de caché, y ya de paso no necesita calcularse otra vez en ese intervalo.
En
FunWarn2
no da problemas porque ya es acotado el fechado y enFunWarn3
tampoco porque no es local.Mi consejo es usar siempre fechados globales.