Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Размер глобала / 15 сообщений из 15, страница 1 из 1
20.09.2005, 13:30
    #33278722
Mr N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Как можно средствами COS узнать размер глобала
...
Рейтинг: 0 / 0
20.09.2005, 14:19
    #33278946
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Смотря какой размер...
Если просто данных, то можно пробежаться по глобалу и считать
размеры (медленно).
Или см. работу утилиты ^%GSIZE. Оттуда можно взять код.
...
Рейтинг: 0 / 0
21.09.2005, 13:39
    #33281148
Mr N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
А где можно найти утилиту %GSIZE? В проводнике в областях %SYS и %CACHELIB в списке программ её нету.
...
Рейтинг: 0 / 0
21.09.2005, 15:27
    #33281591
LittleCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Mr NА где можно найти утилиту %GSIZE? В проводнике в областях %SYS и %CACHELIB в списке программ её нету.
А Вы попробуйте задать маску поиска *.obj
...
Рейтинг: 0 / 0
21.09.2005, 16:16
    #33281839
Mr N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
LittleCat Mr NА где можно найти утилиту %GSIZE? В проводнике в областях %SYS и %CACHELIB в списке программ её нету.
А Вы попробуйте задать маску поиска *.obj
Хотелось бы посмотреть исходный код этой утилиты, но по поиску *.int или *.mac ничего не находится.
...
Рейтинг: 0 / 0
21.09.2005, 16:49
    #33281948
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
При установке Cache нужно поставить галку - грузить
исходники системных утилит (неуверен что работает в демо версии).
Можно еще при распаковке дистрибутива найти исходники
(непомню в какой директории).
...
Рейтинг: 0 / 0
21.09.2005, 20:20
    #33282437
LittleCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Maksim UM(неуверен что работает в демо версии).

Демо-версия ничем не отличается от полноценной кроме возможностей многопользовательской работы, так что смело ставьте галку и изучайте исходные тексты системных утилит :-)
...
Рейтинг: 0 / 0
22.09.2005, 10:12
    #33282913
elakt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
LittleCat
Демо-версия ничем не отличается от полноценной кроме возможностей многопользовательской работы
А разве там не урезаны некоторые вещи? Например, размер буфера и что-то еще?
...
Рейтинг: 0 / 0
22.09.2005, 11:35
    #33283141
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Многопользовательская версия и Cache' PC - отдельные дистрибутивы.
Для Cache' PC не нужен лицензионный ключ. Cache' PC не может использовать лицензионный ключ.

В демоверсии ограничены размеры буфера глобалов и программ.
Это негативно сказывается на производительности.
Данные и программы не кэшируются в памяти, а каждый раз запрашиваются с диска.

Соответственно, если нужно тестировать производительность Cache', нужно запрашивать многопользовательскую версию с временной лицензией в офисе InterSysystems.

Вадим
...
Рейтинг: 0 / 0
23.09.2005, 12:07
    #33285629
Mr N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Поставил версию 5.0.15, нашёл в ней исходники %GSIZE, в инсталяхе версии 5.0.5 почему-то не мог найти опцию установки исходников.

Из найденного кода получилась следующая функция, которая в качестве параметра получает имя глобала без знака "^" и возвращает размер глобала в байтах:

GSize(G)
S DIR = ""
If $zbitget($zversion(0),21) {
Set dirinfo=$zu(49,DIR)
Set bigdb=$Piece(dirinfo,",",21)
Set blksiz=$Piece(dirinfo,",",2)
} else {
Set bigdb=0
Set blksiz=2048
}
Set datasize=$Case(blksiz,2048:2036,:(blksiz-$zu(40,32,10)))
s (n,k,c)=0 ;n:bytes,k:blocks,c:contiguous blocks?
Set rc=$$GetGlobalPointers^%DM(DIR,G,,.b)
//If ('rc) Do ShowMessage(rc,$Get(IO,0)) Quit ""
o 63
f q:'b d q:$d(err) s p=b+1,b=$$GetLinkBlockFromViewBuffer^%DMREPAIR(bigdb),c=c+(p=b)
. v b s t=$$GetBlockTypeFromViewBuffer^%DMREPAIR(bigdb)
. i t-8,t-12 s err="?TOB: "_b_":"_t q ;unexpected type of block
. s n=n+$$GetOffsetFromViewBuffer^%DMREPAIR(bigdb),k=k+1 ;q:t=8 ;so much for normal data blocks
. Set n=n-$Case(bigdb,0:0,:$zu(40,32,10)) ;Adjust number for header bytes
. f i=1:1 s x=$v(i*2-1,-6) q:x="" d q:$d(err)
. . ;Next line covers all the long string types for both 2k and bigdb
. . s v=$v(i*2,-6) If $a(v)'=5,($a(v)'=$Case(bigdb,0:9,:7)),($a(v)'=3) Quit
. . s nb=$p(v,",",2),r=$p(v,",",3) ;nb: # of blocks,r:#bytes in last block
. . s n=n+((nb-1)*blksiz)+r,k=k+(nb-1)+''r
c 63
//q n_","_k_","_c_$g(err)

Set bytes = $fn(n,",")
Quit bytes
...
Рейтинг: 0 / 0
23.09.2005, 15:29
    #33286314
MX - ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Mr NПоставил версию 5.0.15, нашёл в ней исходники %GSIZE, в инсталяхе версии 5.0.5 почему-то не мог найти опцию установки исходников.

Из найденного кода получилась следующая функция, которая в качестве параметра получает имя глобала без знака "^" и возвращает размер глобала в байтах:

GSize(G)
S DIR = ""
If $zbitget($zversion(0),21) {
Set dirinfo=$zu(49,DIR)
Set bigdb=$Piece(dirinfo,",",21)
Set blksiz=$Piece(dirinfo,",",2)
} else {
Set bigdb=0
Set blksiz=2048
}
Set datasize=$Case(blksiz,2048:2036,:(blksiz-$zu(40,32,10)))
s (n,k,c)=0 ;n:bytes,k:blocks,c:contiguous blocks?
Set rc=$$GetGlobalPointers^%DM(DIR,G,,.b)
//If ('rc) Do ShowMessage(rc,$Get(IO,0)) Quit ""
o 63
f q:'b d q:$d(err) s p=b+1,b=$$GetLinkBlockFromViewBuffer^%DMREPAIR(bigdb),c=c+(p=b)
. v b s t=$$GetBlockTypeFromViewBuffer^%DMREPAIR(bigdb)
. i t-8,t-12 s err="?TOB: "_b_":"_t q ;unexpected type of block
. s n=n+$$GetOffsetFromViewBuffer^%DMREPAIR(bigdb),k=k+1 ;q:t=8 ;so much for normal data blocks
. Set n=n-$Case(bigdb,0:0,:$zu(40,32,10)) ;Adjust number for header bytes
. f i=1:1 s x=$v(i*2-1,-6) q:x="" d q:$d(err)
. . ;Next line covers all the long string types for both 2k and bigdb
. . s v=$v(i*2,-6) If $a(v)'=5,($a(v)'=$Case(bigdb,0:9,:7)),($a(v)'=3) Quit
. . s nb=$p(v,",",2),r=$p(v,",",3) ;nb: # of blocks,r:#bytes in last block
. . s n=n+((nb-1)*blksiz)+r,k=k+(nb-1)+''r
c 63
//q n_","_k_","_c_$g(err)

Set bytes = $fn(n,",")
Quit bytes

в версии 5.1 ругается -

Set rc=$$GetGlobalPointers^%DM(DIR,G,,.b)
^
<LINER>GSize+21^MXF
...
Рейтинг: 0 / 0
25.09.2005, 16:21
    #33287438
Mr N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
to MX - ALEX.
Покажите, пожалуйста, как в вашей версии выглядит код функции detail утилиты %GSIZE.
...
Рейтинг: 0 / 0
26.09.2005, 09:20
    #33287809
MX - ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Mr Nto MX - ALEX.
Покажите, пожалуйста, как в вашей версии выглядит код функции detail утилиты %GSIZE.
не знаю как посмотреть исходный код утилиты %GSIZE
...
Рейтинг: 0 / 0
26.09.2005, 09:41
    #33287838
Mr N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
to MX - ALEX:
Откройте в проводнике ветку Области->%SYS->Программы. Выберите из списка программу %GSIZE.int и два раза щёлкните по ней. Если её нету в списке, то попробуйте задать маску поиска *.int. Если и после этого её и других программ с расширением int не будет в списке, то скорее всего у вас не установлены исходники.
...
Рейтинг: 0 / 0
26.09.2005, 14:37
    #33288781
MX - ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер глобала
Mr Nto MX - ALEX:
Откройте в проводнике ветку Области->%SYS->Программы. Выберите из списка программу %GSIZE.int и два раза щёлкните по ней. Если её нету в списке, то попробуйте задать маску поиска *.int. Если и после этого её и других программ с расширением int не будет в списке, то скорее всего у вас не установлены исходники.
в версии 5.1 нет проводника как в 5.0

%GSAVE в списках программ %SYS не значится
хотя работает
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Размер глобала / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]