powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / производительность
14 сообщений из 14, страница 1 из 1
производительность
    #36753572
CEH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяем:

GlobalInput
;--- Regular Write to Globals ---
k ^xSNOAR
set t=$zhorolog

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^xSNOAR(index1,index2)="test"
}

set t0=$zhorolog-t
write "(t0) Time using normal set to ^Global = ",?25,t0," c.",!



;--- Regular Write to Globals with ^%NOJRN ---
k ^xSNOAR
set t=$zhorolog

// Disable Journaling
do DISABLE^%NOJRN

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^xSNOAR(index1,index2)="test"
}

// Enable Journaling
do ENABLE^%NOJRN

set t1=$zhorolog-t
write "(t1) Time using set to ^Global and ^%NOJRN = ",?25,t1," c.",!



;--- Sort Transaction with Regular Global ---;
k ^xSNOAR
set t=$zhorolog
set return=$SortBegin(^xSNOAR)

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^xSNOAR(index1,index2)="test"
}

set return=$SortEnd(^xSNOAR)

set t2=$zhorolog-t
write "(t2) Time using ^Global and $SortBegin = ",?25,t2," c.",!



;--- Sort Transaction with Regular Global and journaling turned off ---;
k ^xSNOAR
set t=$zhorolog

// Disable Journaling
do DISABLE^%NOJRN
set return=$SortBegin(^xSNOAR)

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^xSNOAR(index1,index2)="test"
}

set return=$SortEnd(^xSNOAR)

// Enable Journaling
do ENABLE^%NOJRN

set t3=$zhorolog-t
write "(t3) Time using ^Global, $SortBegin, and ^%NOJRN = ",?25,t3," c.",!


;--- Regular Write to Process Global ---
k ^||xSNOAR
set t=$zhorolog

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^||xSNOAR(index1,index2)="test"
}

set t4=$zhorolog-t
write "(t4) Time using process global = ",?25,t4," c.",!


;--- Sort Transaction with Process globals ---;
k ^||xSNOAR
set t=$zhorolog

// Disable Journaling
set return=$SortBegin(^||xSNOAR)

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^||xSNOAR(index1,index2)="test"
}

set return=$SortEnd(^||xSNOAR)

set t5=$zhorolog-t
write "(t5) Time using ^||Global and $SortBegin = ",?25,t5," c.",!


;--- Sort Transaction with Process globals and journaling turned off ---;
k ^||xSNOAR
set t=$zhorolog

// Disable Journaling
do DISABLE^%NOJRN
set return=$SortBegin(^||xSNOAR)

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^||xSNOAR(index1,index2)="test"
}

;--- Sort Transactions ends here ---;
set return=$SortEnd(^||xSNOAR)

// Enable Journaling
do ENABLE^%NOJRN

set t6=$zhorolog-t
write "(t6) Time using ^||Global, $SortBegin, and ^%NOJRN = ",?25,t6," c.",!


;--- Regular Write to SCRATCH ---
s J=$J
k ^SCR(J)
set t=$zhorolog

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^xSNOAR(J,index1,index2)="test"
}

set t7=$zhorolog-t
write "(t7) Time using ^SCR = ",?25,t7," c.",!



;--- Sort Transaction with SCRATCH Global ---;
s J=$J
k ^xSNOAR
set t=$zhorolog
set return=$SortBegin(^xSNOAR)

// Write random data into global
f i=1:1:1000000 {
set index1=$Random(1000000)
set index2=$Random(1000001)

set ^xSNOAR(J,index1,index2)="test"
}

set return=$SortEnd(^xSNOAR)

set t8=$zhorolog-t
write "(t8) Time using ^SCR and $SortBegin = ",?25,t8," c.",!


//TOO BIG of an array -- causes error: <STORE>GlobalInput+118^
;--- Regular Write to Local ---
;k LOCAL
;set t=$zhorolog
;
;// Write random data into global
;f i=1:1:1000000 {
; set index1=$Random(1000000)
; set index2=$Random(1000001)
;
; set LOCAL(index1,index2)="test"
;}
;
;set t9=$zhorolog-t
;write "(t9) Time using LOCAL = ",?25,t9," c.",!
;

// clean up
k LOCAL,^SCR($J),^SNOAR,^||SNOAR
quit
...
Рейтинг: 0 / 0
производительность
    #36753578
CEH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получаем:

(t0) Time using normal set to ^Global = 18.628913 c.
(t1) Time using normal set to ^Global and ^%NOJRN = 18.301713 c.
(t2) Time using ^Global and $SortBegin = 7.21887 c.
(t3) Time using ^Global, $SortBegin, and ^%NOJRN = 7.559685 c.
(t4) Time using process global = 17.139225 c.
(t5) Time using ^||Global and $SortBegin = 8.504193 c.
(t6) Time using ^||Global, $SortBegin, and ^%NOJRN = 6.920677 c.
(t7) Time using ^SCR = 20.693165 c.
(t8) Time using ^SCR and $SortBegin = 7.264298 c.

опять:

(t0) Time using normal set to ^Global = 19.432563 c.
(t1) Time using set to ^Global and ^%NOJRN = 17.021674 c.
(t2) Time using ^Global and $SortBegin = 10.013873 c.
(t3) Time using ^Global, $SortBegin, and ^%NOJRN = 6.09075 c.
(t4) Time using process global = 17.950711 c.
(t5) Time using ^||Global and $SortBegin = 5.847095 c.
(t6) Time using ^||Global, $SortBegin, and ^%NOJRN = 5.909198 c.
(t7) Time using ^SCR = 22.871725 c.
(t8) Time using ^SCR and $SortBegin = 7.157459 c.

вопрос:

^SCR($J,...) глобаль использывали на каше 5, когда ^||Global не было. Она не журналится, поэтому я ожидал тождественного результата с (t1). Почему-то (t7) > (t1). Посоветуйте где копать?
...
Рейтинг: 0 / 0
производительность
    #36753581
CEH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправил эксперимент -- добавил $J как первый индекс в каждый тест. Результат всё тот же...
...
Рейтинг: 0 / 0
производительность
    #36753635
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код надо в блок код оформлять, читать будет немного удобней
что вы ожидали увидеть проведя все пару тестов ?

во первых разумно что при добавлении 3 индекса, увеличивается время
а во вторых чтобы делать хоть какие то выводы, стоит провести, несколько тестов не меньше 10 и усреднить их результаты и их уже сравнивать

кто знает может на вашем сервере кто-то кроме вас запустил еще что-то очень сильное, что отняло производительность
тесты можно запустить одновременно параллельно, что может дать несколько более правильную картину
так же может зависеть от того на каком ОС работает сервер Cache

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

но в любом случае, логично что при увеличении объема данных, увеличится и время на его сохранение, добавление индекса это тоже касается

CEHпоправил эксперимент -- добавил $J как первый индекс в каждый тест. Результат всё тот же...
покажите, что у вас получилось, потому как не очень понятно что вы имеете ввиду
...
Рейтинг: 0 / 0
производительность
    #36753671
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CEH
^SCR($J,...) глобаль использывали на каше 5, когда ^||Global не было. Она не журналится, поэтому я ожидал тождественного результата с (t1). Почему-то (t7) > (t1). Посоветуйте где копать?
В коде у вас используется ^xSNOAR и перед блоком 7 включается журналирование. (Кстати, почему бы для временных глобалей процесса в Cache 5 не использовать область CACHETEMP, т.е. ^CacheTemp.<имя>($j)?)
Про увеличение "нагрузки" с дополнительным индексом уже написали.

Вот более "красивый" код для ваших экспериментов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
TestGlobal(N= 1000000 )
	f glRef = $name(^xSNOAR), $name(^||xSNOAR), $name(^xSNOAR($j)), $name(^CacheTemp.xSNOAR($j))
	{
		write "Global name = "_glRef,!
		
		;--- Regular Write to Globals ---
		k @glRef
		set t=$zhorolog
		// Write random data into global
		f i= 1 : 1 :N {
			set index1=$Random(N)
			set index2=$Random(N+ 1 )
			set @glRef@(index1,index2)="test"
		}
		set t0=$zhorolog-t
		write "(t0) Time using normal set to ^Global = ",? 25 ,t0," c.",!

		;--- Regular Write to Globals with ^%NOJRN ---
		k @glRef
		// Disable Journaling
		do DISABLE^%NOJRN
		set t=$zhorolog
		// Write random data into global
		f i= 1 : 1 :N {
			set index1=$Random(N)
			set index2=$Random(N+ 1 )
			set @glRef@(index1,index2)="test"
		}
		set t1=$zhorolog-t
		write "(t1) Time using set to ^Global and ^%NOJRN = ",? 25 ,t1," c.",!
		// Enable Journaling
		do ENABLE^%NOJRN

		;--- Sort Transaction with Regular Global ---;
		k @glRef
		set t=$zhorolog
		set return=$SortBegin(@glRef)
		// Write random data into global
		f i= 1 : 1 :N {
			set index1=$Random(N)
			set index2=$Random(N+ 1 )
			set @glRef@(index1,index2)="test"
		}
		set return=$SortEnd(@glRef)
		set t2=$zhorolog-t
		write "(t2) Time using ^Global and $SortBegin = ",? 25 ,t2," c.",!

		;--- Sort Transaction with Regular Global and journaling turned off ---;
		k @glRef
		// Disable Journaling
		do DISABLE^%NOJRN
		set t=$zhorolog
		set return=$SortBegin(@glRef)
		// Write random data into global
		f i= 1 : 1 :N {
			set index1=$Random(N)
			set index2=$Random(N+ 1 )
			set @glRef@(index1,index2)="test"
		}
		set return=$SortEnd(@glRef)
		set t3=$zhorolog-t
		write "(t3) Time using ^Global, $SortBegin, and ^%NOJRN = ",? 25 ,t3," c.",!
		// Enable Journaling
		do ENABLE^%NOJRN
	}

	// clean up
	k LOCAL,^SNOAR,^||SNOAR
	quit
...
Рейтинг: 0 / 0
производительность
    #36753848
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно в этих тестах, зачем отключать журналирование при записи в ^||Глобалы? Они и так отображены в CACHETEMP, нежурналируемую базу.
...
Рейтинг: 0 / 0
производительность
    #36754130
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменённый код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
  set tab= 51 
  set N=1e6

  ;--- Regular Write to Globals ---
  k ^xSNOAR
  set t=$zhorolog
  f i= 1 : 1 :N set ^xSNOAR($Random(N),$Random(N+ 1 ))="test"
  write "(t0) Time using normal set to ^xSNOAR = ",?tab,$zhorolog-t," c.",!

  ;--- Regular Write to Globals with ^%NOJRN ---
  k ^xSNOAR
  set t=$zhorolog
  do DISABLE^%NOJRN
  f i= 1 : 1 :N set ^xSNOAR($Random(N),$Random(N+ 1 ))="test"
  do ENABLE^%NOJRN
  write "(t1) Time using set to ^xSNOAR, ^%NOJRN = ",?tab,$zhorolog-t," c.",!

  ;--- Sort Transaction with Regular Global ---;
  k ^xSNOAR
  set t=$zhorolog
  set return=$SortBegin(^xSNOAR)
  f i= 1 : 1 :N set ^xSNOAR($Random(N),$Random(N+ 1 ))="test"
  set return=$SortEnd(^xSNOAR)
  write "(t2) Time using ^xSNOAR, $SortBegin = ",?tab,$zhorolog-t," c.",!


  ;--- Sort Transaction with Regular Global and journaling turned off ---;
  k ^xSNOAR
  set t=$zhorolog
  do DISABLE^%NOJRN
  set return=$SortBegin(^xSNOAR)
  f i= 1 : 1 :N set ^xSNOAR($Random(N),$Random(N+ 1 ))="test"
  set return=$SortEnd(^xSNOAR)
  do ENABLE^%NOJRN
  write "(t3) Time using ^xSNOAR, $SortBegin, ^%NOJRN = ",?tab,$zhorolog-t," c.",!


  ;--- Regular Write to Process Global ---
  k ^||xSNOAR
  set t=$zhorolog
  f i= 1 : 1 :N set ^||xSNOAR($Random(N),$Random(N+ 1 ))="test"
  write "(t4) Time using ^||xSNOAR = ",?tab,$zhorolog-t," c.",!

  k ^||xSNOAR
  set t=$zhorolog
  do DISABLE^%NOJRN
  f i= 1 : 1 :N set ^||xSNOAR($Random(N),$Random(N+ 1 ))="test"
  do ENABLE^%NOJRN
  write "(t-) Time using ^||xSNOAR, ^%NOJRN = ",?tab,$zhorolog-t," c.",!

  k ^CacheTempUser
  set t=$zhorolog
  f i= 1 : 1 :N set ^CacheTempUser($J,$Random(N),$Random(N+ 1 ))="test"
  write "(t=) Time using ^CacheTempUser($J) = ",?tab,$zhorolog-t," c.",!

  k ^CacheTempUser
  set t=$zhorolog
  do DISABLE^%NOJRN
  f i= 1 : 1 :N set ^CacheTempUser($J,$Random(N),$Random(N+ 1 ))="test"
  do ENABLE^%NOJRN
  write "(t*) Time using ^CacheTempUser($J), ^%NOJRN = ",?tab,$zhorolog-t," c.",!

  ;--- Sort Transaction with Process globals ---;
  k ^||xSNOAR
  set t=$zhorolog
  set return=$SortBegin(^||xSNOAR)
  f i= 1 : 1 :N set ^||xSNOAR($Random(N),$Random(N+ 1 ))="test"
  set return=$SortEnd(^||xSNOAR)
  write "(t5) Time using ^||xSNOAR, $SortBegin = ",?tab,$zhorolog-t," c.",!


  ;--- Sort Transaction with Process globals and journaling turned off ---;
  k ^||xSNOAR
  set t=$zhorolog
  do DISABLE^%NOJRN
  set return=$SortBegin(^||xSNOAR)
  f i= 1 : 1 :N set ^||xSNOAR($Random(N),$Random(N+ 1 ))="test"
  set return=$SortEnd(^||xSNOAR)
  do ENABLE^%NOJRN
  write "(t6) Time using ^||xSNOAR, $SortBegin, ^%NOJRN = ",?tab,$zhorolog-t," c.",!


  ;--- Regular Write to SCRATCH ---
  k ^xSNOAR
  set t=$zhorolog
  f i= 1 : 1 :N set ^xSNOAR($J,$Random(N),$Random(N+ 1 ))="test"
  write "(t7) Time using ^xSNOAR($J) = ",?tab,$zhorolog-t," c.",!


  ;--- Sort Transaction with SCRATCH Global ---;
  k ^xSNOAR
  set t=$zhorolog
  set return=$SortBegin(^xSNOAR)
  f i= 1 : 1 :N set ^xSNOAR($J,$Random(N),$Random(N+ 1 ))="test"
  set return=$SortEnd(^xSNOAR)
  write "(t8) Time using ^xSNOAR($J), $SortBegin = ",?tab,$zhorolog-t," c.",!

  ;--- Sort Transaction with SCRATCH Global and journaling turned off ---;
  k ^xSNOAR
  set t=$zhorolog
  do DISABLE^%NOJRN
  set return=$SortBegin(^xSNOAR)
  f i= 1 : 1 :N set ^xSNOAR($J,$Random(N),$Random(N+ 1 ))="test"
  set return=$SortEnd(^xSNOAR)
  do ENABLE^%NOJRN
  write "(t9) Time using ^xSNOAR($J), $SortBegin, ^%NOJRN = ",?tab,$zhorolog-t," c.",!


  // clean up
  k LOCAL,^xSNOAR($J),^xSNOAR,^||xSNOAR,^CacheTempUser
  

Результаты (Caché 2010.2.FT5):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
(t0) Time using normal set to ^xSNOAR =            5.786224 c.
(t1) Time using set to ^xSNOAR, ^%NOJRN =          5.400202 c.
(t2) Time using ^xSNOAR, $SortBegin =              4.412208 c.
(t3) Time using ^xSNOAR, $SortBegin, ^%NOJRN =     2.353803 c.
(t4) Time using ^||xSNOAR =                        5.394009 c.
(t-) Time using ^||xSNOAR, ^%NOJRN =               5.385685 c.
(t=) Time using ^CacheTempUser($J) =               5.625739 c.
(t*) Time using ^CacheTempUser($J), ^%NOJRN =      5.616114 c.
(t5) Time using ^||xSNOAR, $SortBegin =            2.361786 c.
(t6) Time using ^||xSNOAR, $SortBegin, ^%NOJRN =   2.36206 c.
(t7) Time using ^xSNOAR($J) =                      6.003436 c.
(t8) Time using ^xSNOAR($J), $SortBegin =          4.736194 c.
(t9) Time using ^xSNOAR($J), $SortBegin, ^%NOJRN = 2.609086 c.
...
Рейтинг: 0 / 0
производительность
    #36754525
CEH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо Servit на чём-то быстром бегаете. подсажу свои детали позже.
...
Рейтинг: 0 / 0
производительность
    #36754581
CEH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Turk
согласен. краше.
кто-нибудь с indirection (не знаю как по-русски) эксперименты ставил?
мой эксперимент не чистый так как использую отдельные $Random. зделано умышленно что бы исключить Read.
но всё же кто объяснит ^SCR?
...
Рейтинг: 0 / 0
производительность
    #36754699
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEH,

indirection - косвенность.

На этом форуме было много экспериментов производительности, включая и косвенность.

Про ^SCR DAiMor, Turk уже объяснили.
...
Рейтинг: 0 / 0
производительность
    #36755619
CEH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Servit,
я не знаю какой этикет в этой ситуации -- как мне узнать о вашем железе?
вами изменённый тест существенно не улучшил скорость на моём сервере.

Twin Pen Zeon 2.4 duo core
VM with 2G out of 12G allocated RAM
Dell perc RAID array

Cache 2009.1.3.704.0
...
Рейтинг: 0 / 0
производительность
    #36755813
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEH,

Intel Core Duo 2.66Ghz, 2Gb RAM, 250Gb HDD IDE

Думаю, дело в настройках Caché и в улучшениях производительности новой версии СУБД.
Подробнее можно почитать в разделе документации "New and Enhanced Features for Caché 2010.2" пункт "Performance And Scalability" .

PS: попробуйте сделать тесты не в виртуальной машине.
...
Рейтинг: 0 / 0
производительность
    #36756115
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitPS: попробуйте сделать тесты не в виртуальной машине.
Заметил как-то на своих тестах, что в VMware график загрузки процессора от активно работающего процесса Cache выглядит как пила (или набор трапеций). В то же время при работе этого же процесса на этой же машине без использования виртуальной машины график загрузки процессора был ровным. (Тесты проводил при различном количестве параллельных процессов на 4-ядерном процессоре - результат всегда один.)
Как мне кажется, все дело в дисковых операциях в VMware, т.к. периоды спада активности процессора совпадают с моментами сброса данных из кэша WRTDMN на диск.
...
Рейтинг: 0 / 0
производительность
    #36757230
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEH,

VM: 2 Core, 512Mb RAM, 8Gb HDD

Результаты:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
(t0) Time using normal set to ^xSNOAR =            7.45148 c.
(t1) Time using set to ^xSNOAR, ^%NOJRN =          6.828803 c.
(t2) Time using ^xSNOAR, $SortBegin =              3.835625 c.
(t3) Time using ^xSNOAR, $SortBegin, ^%NOJRN =     2.907022 c.
(t4) Time using ^||xSNOAR =                        6.888656 c.
(t-) Time using ^||xSNOAR, ^%NOJRN =               6.971454 c.
(t=) Time using ^CacheTempUser($J) =               7.630453 c.
(t*) Time using ^CacheTempUser($J), ^%NOJRN =      8.16435 c.
(t5) Time using ^||xSNOAR, $SortBegin =            3.015974 c.
(t6) Time using ^||xSNOAR, $SortBegin, ^%NOJRN =   2.980655 c.
(t7) Time using ^xSNOAR($J) =                      8.176091 c.
(t8) Time using ^xSNOAR($J), $SortBegin =          4.712532 c.
(t9) Time using ^xSNOAR($J), $SortBegin, ^%NOJRN = 2.581281 c.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / производительность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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