Skip to content

Commit f105aa9

Browse files
committed
Замеры производительности
1 parent d379061 commit f105aa9

3 files changed

Lines changed: 256 additions & 0 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2+
<HTML><HEAD><TITLE>OSClientServerAppendix</TITLE>
3+
<META content="text/html; charset=Windows-1252" http-equiv="Content-Type">
4+
<LINK rel="stylesheet" type="text/css" href="mainstyle.css"></HEAD>
5+
<BODY id=bodyID class=dtBODY>
6+
<DIV id=nsbanner>
7+
<DIV id=bannerrow1>
8+
<TABLE class=bannerparthead cellSpacing=0>
9+
<TBODY>
10+
<TR id=hdr>
11+
<TD class=runninghead></TD>
12+
<TD class=product></TD></TR></TBODY></TABLE></DIV>
13+
<DIV id=TitleRow>
14+
<H1 class=dtH1>Дополнения</H1></DIV></DIV>
15+
<DIV id=nstext>
16+
<P><BR></P>
17+
<li><A href="OSClientServerMetering.html">Замеры производительности</A></li>
18+
</DIV></BODY></HTML>
Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2+
<HTML><HEAD><TITLE>OneScriptFormsPropertyTag</TITLE>
3+
<META content="text/html; charset=Windows-1252" http-equiv="Content-Type">
4+
<LINK rel="stylesheet" type="text/css" href="mainstyle.css"></HEAD>
5+
<BODY id=bodyID class=dtBODY>
6+
<DIV id=nsbanner>
7+
<DIV id=bannerrow1>
8+
<TABLE class=bannerparthead cellSpacing=0>
9+
<TBODY>
10+
<TR id=hdr>
11+
<TD class=runninghead></TD>
12+
<TD class=product></TD></TR></TBODY></TABLE></DIV>
13+
<DIV id=TitleRow>
14+
<H1 class=dtH1>Замеры производительности</H1></DIV></DIV>
15+
<DIV id=nstext>
16+
<H4 class=dtH4>Подключение клиентов</H4>
17+
<P>За одну секунду сервер может подключить 1700 клиентов.</P>
18+
<P></P>
19+
<details><summary>Код теста подключений:</summary>
20+
<P><PRE class=code>
21+
<a id="copy1" href="jаvascript://" title="Выделяет код, копирует и снимает выделение.">Копировать</a> <a id="select1" href="jаvascript://" title="Выделяет код.">Выделить всё</a>
22+
<hr style="border-color: lightgray;"><DIV id="cont1">
23+
// запустите в терминале файл Сервер.os с таким содержимым
24+
25+
Перем КС;
26+
27+
Функция Сервер_ПриПодключенииКлиента() Экспорт
28+
СерверКлиент = КС.АргументыСобытия.Клиент;
29+
Сообщить("Подключен новый клиент. Идентификатор клиента = " + СерверКлиент.ИдентификаторКлиента);
30+
Сообщить("========================================");
31+
КонецФункции
32+
33+
Процедура Сервер_ПриПолученииСообщения() Экспорт
34+
Сообщение = КС.АргументыСобытия.Сообщение;
35+
Отправитель = КС.Отправитель;
36+
ОтправительИдентификаторКлиента = Отправитель.ИдентификаторКлиента;
37+
Если ("" + Сообщение) = "КсСообщениеТекст" Тогда
38+
Сообщить("Клиент отправил сообщение: " + Сообщение.Text + " (ИдентификаторКлиента = " + Отправитель.ИдентификаторКлиента + ")");
39+
Сообщить("========================================");
40+
ИначеЕсли ("" + Сообщение) = "КсСообщениеБайты" Тогда
41+
Сообщить("Клиент отправил файл: " + СтрДлина(Сообщение.Данные) + "-" + Отправитель.ИдентификаторКлиента + "-" + Сообщение.Данные);
42+
// Сообщение.Данные.Записать("C:\777\МойФайл.jpg");
43+
Сообщить("========================================");
44+
КонецЕсли;
45+
КонецПроцедуры
46+
47+
Процедура Сервер_ПриОтключенииКлиента() Экспорт
48+
Сообщить("Клиент отключен! Идентификатор клиента = " + КС.АргументыСобытия.Клиент.ИдентификаторКлиента);
49+
Сообщить("========================================");
50+
КонецПроцедуры
51+
52+
ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug\OneScriptClientServer.dll");
53+
КС = Новый КлиентСерверДляОдноСкрипта();
54+
55+
TCPСервер1 = КС.TCPСервер(10085);
56+
TCPСервер1.ПриПодключенииКлиента = Новый Действие(ЭтотОбъект, "Сервер_ПриПодключенииКлиента");
57+
TCPСервер1.ПриОтключенииКлиента = Новый Действие(ЭтотОбъект, "Сервер_ПриОтключенииКлиента");
58+
TCPСервер1.ПриПолученииСообщения = Новый Действие(ЭтотОбъект, "Сервер_ПриПолученииСообщения");
59+
60+
// Запустим сервер
61+
TCPСервер1.Начать();
62+
Сообщить("Сервер запущен");
63+
64+
// Запустим цикл обработки событий
65+
Пока КС.Продолжать Цикл
66+
КС.ПолучитьСобытие().Выполнить();
67+
КонецЦикла;
68+
69+
//==========================================================================================
70+
71+
// Затем запустите в терминале файл Клиент.os с таким содержимым
72+
73+
ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug\OneScriptClientServer.dll");
74+
КС = Новый КлиентСерверДляОдноСкрипта();
75+
76+
Время1 = ТекущаяУниверсальнаяДатаВМиллисекундах();
77+
Для А = 0 По 16000 Цикл
78+
TCPКлиент1 = КС.TCPКлиент(КС.TCPКонечнаяТочка("127.0.0.1", 10085));
79+
Попытка
80+
TCPКлиент1.Подключить();
81+
Исключение
82+
Сообщить("А = " + А);
83+
Прервать;
84+
КонецПопытки;
85+
КонецЦикла;
86+
Время2 = ТекущаяУниверсальнаяДатаВМиллисекундах();
87+
Сообщить("" + (А - 1) + " клиентов подключено за " + (Время2 - Время1) + " мс");
88+
89+
// TCPКлиент1.Отключить();
90+
// КС.Продолжать = Ложь;
91+
92+
// Запустим цикл обработки событий
93+
Пока КС.Продолжать Цикл
94+
КС.ПолучитьСобытие().Выполнить();
95+
КонецЦикла;
96+
</DIV>
97+
</PRE>
98+
</details>
99+
<P></P>
100+
<hr style="border-color: lightgray;">
101+
<H4 class=dtH4>Отправка клиентом сообщений</H4>
102+
<P>Клиент посылает 15000 коротких текстовых сообщений за одну секунду. Сервер все их асинхронно принимает и обрабатывает.</P>
103+
<P></P>
104+
<details><summary>Код теста отправки сообщений:</summary>
105+
<P><PRE class=code>
106+
<a id="copy2" href="jаvascript://" title="Выделяет код, копирует и снимает выделение.">Копировать</a> <a id="select2" href="jаvascript://" title="Выделяет код.">Выделить всё</a>
107+
<hr style="border-color: lightgray;"><DIV id="cont2">
108+
// запустите в терминале файл Сервер.os с таким содержимым
109+
Перем КС;
110+
111+
Функция Сервер_ПриПодключенииКлиента() Экспорт
112+
СерверКлиент = КС.АргументыСобытия.Клиент;
113+
Сообщить("Подключен новый клиент. Идентификатор клиента = " + СерверКлиент.ИдентификаторКлиента);
114+
Сообщить("========================================");
115+
КонецФункции
116+
117+
Процедура Сервер_ПриПолученииСообщения() Экспорт
118+
Сообщение = КС.АргументыСобытия.Сообщение;
119+
Отправитель = КС.Отправитель;
120+
ОтправительИдентификаторКлиента = Отправитель.ИдентификаторКлиента;
121+
Если ("" + Сообщение) = "КсСообщениеТекст" Тогда
122+
Сообщить("Клиент отправил сообщение: " + Сообщение.Text + " (ИдентификаторКлиента = " + Отправитель.ИдентификаторКлиента + ")");
123+
Сообщить("========================================");
124+
ИначеЕсли ("" + Сообщение) = "КсСообщениеБайты" Тогда
125+
Сообщить("Клиент отправил файл: " + СтрДлина(Сообщение.Данные) + "-" + Отправитель.ИдентификаторКлиента + "-" + Сообщение.Данные);
126+
// Сообщение.Данные.Записать("C:\777\МойФайл.jpg");
127+
Сообщить("========================================");
128+
КонецЕсли;
129+
КонецПроцедуры
130+
131+
Процедура Сервер_ПриОтключенииКлиента() Экспорт
132+
Сообщить("Клиент отключен! Идентификатор клиента = " + КС.АргументыСобытия.Клиент.ИдентификаторКлиента);
133+
Сообщить("========================================");
134+
КонецПроцедуры
135+
136+
ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug\OneScriptClientServer.dll");
137+
КС = Новый КлиентСерверДляОдноСкрипта();
138+
139+
TCPСервер1 = КС.TCPСервер(10085);
140+
TCPСервер1.ПриПодключенииКлиента = Новый Действие(ЭтотОбъект, "Сервер_ПриПодключенииКлиента");
141+
TCPСервер1.ПриОтключенииКлиента = Новый Действие(ЭтотОбъект, "Сервер_ПриОтключенииКлиента");
142+
TCPСервер1.ПриПолученииСообщения = Новый Действие(ЭтотОбъект, "Сервер_ПриПолученииСообщения");
143+
144+
// Запустим сервер
145+
TCPСервер1.Начать();
146+
Сообщить("Сервер запущен");
147+
148+
// Запустим цикл обработки событий
149+
Пока КС.Продолжать Цикл
150+
КС.ПолучитьСобытие().Выполнить();
151+
КонецЦикла;
152+
153+
//==========================================================================================
154+
155+
// Затем запустите в терминале файл Клиент.os с таким содержимым
156+
157+
ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug\OneScriptClientServer.dll");
158+
КС = Новый КлиентСерверДляОдноСкрипта();
159+
TCPКлиент1 = КС.TCPКлиент(КС.TCPКонечнаяТочка("127.0.0.1", 10085));
160+
TCPКлиент1.Подключить();
161+
162+
Время1 = ТекущаяУниверсальнаяДатаВМиллисекундах();
163+
Если TCPКлиент1.СостояниеСоединения = 0 Тогда
164+
Для А = 0 По 18000 Цикл
165+
// Отправим сообщение на сервер.
166+
TCPКлиент1.ОтправитьСообщение(КС.СообщениеТекст("Это " + А + " текстовое сообщение!!!!!!!"));
167+
КонецЦикла;
168+
КонецЕсли;
169+
Время2 = ТекущаяУниверсальнаяДатаВМиллисекундах();
170+
Сообщить("" + А + " сообщений отправлено за " + (Время2 - Время1) + " мс");
171+
172+
// TCPКлиент1.Отключить();
173+
// КС.Продолжать = Ложь;
174+
175+
// Запустим цикл обработки событий
176+
Пока КС.Продолжать Цикл
177+
КС.ПолучитьСобытие().Выполнить();
178+
КонецЦикла;
179+
</DIV>
180+
</PRE>
181+
</details>
182+
<P></P>
183+
<H4 class=dtH4>Смотрите также</H4>
184+
<P><A href="OSClientServer.html">Библиотека&nbsp;OneScriptClientServer</A></P></DIV>
185+
<script>
186+
window.onload = function () {
187+
var a = document.getElementById('select1');
188+
a.onclick = function() {
189+
window.getSelection().removeAllRanges();
190+
var ta1 = document.getElementById('cont1');
191+
var range1 = document.createRange();
192+
range1.selectNode(ta1);
193+
window.getSelection().addRange(range1);
194+
return false;
195+
}
196+
197+
var b = document.getElementById('copy1');
198+
b.onclick = function() {
199+
window.getSelection().removeAllRanges();
200+
var ta2 = document.getElementById('cont1');
201+
var range2 = document.createRange();
202+
range2.selectNode(ta2);
203+
window.getSelection().addRange(range2);
204+
try {
205+
document.execCommand('copy');
206+
} catch(err) {}
207+
window.getSelection().removeRange(range2);
208+
return false;
209+
}
210+
211+
var c = document.getElementById('select2');
212+
c.onclick = function() {
213+
window.getSelection().removeAllRanges();
214+
var ta3 = document.getElementById('cont2');
215+
var range3 = document.createRange();
216+
range3.selectNode(ta3);
217+
window.getSelection().addRange(range3);
218+
return false;
219+
}
220+
221+
var d = document.getElementById('copy2');
222+
d.onclick = function() {
223+
window.getSelection().removeAllRanges();
224+
var ta4 = document.getElementById('cont2');
225+
var range4 = document.createRange();
226+
range4.selectNode(ta4);
227+
window.getSelection().addRange(range4);
228+
try {
229+
document.execCommand('copy');
230+
} catch(err) {}
231+
window.getSelection().removeRange(range4);
232+
return false;
233+
}
234+
}
235+
</script>
236+
</BODY></HTML>

docs/OSClientServerRu/contents.htm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@
116116
d.add(105,104,"Идентификатор (MessageId) Свойство","OSClientServer.NumberMessage.MessageId.html");
117117
d.add(106,104,"Число (Number) Свойство","OSClientServer.NumberMessage.Number.html");
118118
d.add(107,1,"СостояниеСоединения (CommunicationStates) Перечисление","OSClientServer.CommunicationStates.html");
119+
d.add(108,0,"Дополнения","OSClientServerAppendix.html");
120+
d.add(109,108,"Замеры производительности","OSClientServerMetering.html");
119121

120122
document.write(d);
121123
</script>

0 commit comments

Comments
 (0)