|
Внешняя компонента для теста скорости до хоста (Поиск) | ☑ | ||
---|---|---|---|---|
0
Midasu
23.12.13
✎
16:36
|
Помогите найти внешнюю компоненту, для определения скорости передачи данных с нужным IP (сервера), база файловая.
В MiracleV8 есть ping, да и через WScript можно пингануть, но этого мне не достаточно, т.к. нужна именно скорость получения данных с такого-то IP, чтобы при выполнении запроса можно было сделать прогресс-бар с точным временем окончания запроса (скорость будет выступать как коэффициент, а значение времени будет браться из регистра сведений, куда будет заноситься значение времени выполнения, при определённых настройках, этого запроса). Прошу помощи. |
|||
1
Midasu
23.12.13
✎
16:40
|
Хм, можно и не внешнюю компоненту.
Любому варианту буду рад. |
|||
2
Жан Пердежон
23.12.13
✎
16:43
|
что за запрос?
|
|||
3
Midasu
23.12.13
✎
16:45
|
(2)
Самописная процентовка. Долго выполняется. Бухи успевают покричать временами. Только прогресс-бар их успокоит, думаю. |
|||
4
Жан Пердежон
23.12.13
✎
16:49
|
1С-ный запрос к данным на сервере?
если УФ - смотри как в типовых отчеты делаются |
|||
5
Midasu
23.12.13
✎
16:52
|
(4)
>>Запрос к данным на сервере Ну, есть обработка, в ней запрос. Конфа - УТ 10.3. Я не думаю, что где-то делается такая вакханалия. Прогресс-бар времени запроса я не смог найти. |
|||
6
fmrlex
23.12.13
✎
16:53
|
(5) Херась, нормально тебя бухи озадачили. Я б им лучше гипножабу подсунул...
|
|||
7
Midasu
23.12.13
✎
16:54
|
Кажется, нашёл решение.
Файл на 10mb на сервере и КопироватьФайл. До и после копирования - ТекущаяДата(). Разница в времени, деление на мегабайты. Остаётся надеяться, что 1с-ка останавливает выполнение кода на время копирования. |
|||
8
fmrlex
23.12.13
✎
16:55
|
(7) Ты думаешь, что выполнение запроса и время передачи левого файла сильно коррелируют?
|
|||
9
Midasu
23.12.13
✎
17:00
|
(8)
Я же говорю, что при предыдущих выполнениях этого запроса буду записывать время выполнения в мой регистр. А время передачи файла будет лишь коэффициентом. |
|||
10
Принт
23.12.13
✎
17:03
|
"В 3000 году не будет никаких 1С! Будут только ВК"
|
|||
11
Serginio1
23.12.13
✎
17:24
|
объект=Новый COMОбъект("NetObjectToIDispatch45");
Пинг=Объект.СоздатьОбъект("System.Net.NetworkInformation.Ping"); Сообщить(Пинг); reply = Пинг.Send(Сервер); Если reply.Address<>неопределено Тогда String=Объект.ПолучитьТип("System.String"); Сообщить(String.Format("Address: {0}", reply.Address.ToString ())); Сообщить(String.Format("RoundTrip time: {0}", reply.RoundtripTime)); Сообщить(String.Format("Time to live: {0}", reply.Options.Ttl)); Сообщить(String.Format("Don't fragment: {0}", reply.Options.DontFragment)); Сообщить(String.Format("Buffer size: {0}", reply.Buffer.GetLength())); Иначе Сообщить("Нет соединения") КонецЕсли; |
|||
12
Serginio1
23.12.13
✎
17:26
|
В строке String.Format("Buffer size: {0}", reply.Buffer.GetLength()));
не Length так как сделал так что бы возвращался SafeArray |
|||
13
Serginio1
23.12.13
✎
17:46
|
Вернее правильно будет
Если reply.Status.Equals(Объект.ПолучитьТип("System.Net.NetworkInformation.IPStatus").Success) Тогда String=Объект.ПолучитьТип("System.String"); Сообщить(String.Format("Address: {0}", reply.Address.ToString ())); Сообщить(String.Format("RoundTrip time: {0}", reply.RoundtripTime)); Сообщить(String.Format("Time to live: {0}", reply.Options.Ttl)); Сообщить(String.Format("Don't fragment: {0}", reply.Options.DontFragment)); Сообщить(String.Format("Buffer size: {0}", reply.Buffer.GetLength())); Иначе Сообщить("Не удалось соединиться") КонецЕсли; |
|||
14
Midasu
24.12.13
✎
11:32
|
(13)
Эммм, но ведь это пинг просто... Сделал так: Процедура ТестНажатие(Элемент) MSScriptControl = Новый COMОбъект("MSScriptControl.ScriptControl"); MSScriptControl.Language="javascript"; Начало = MSScriptControl.eval("new Date().getTime()"); КопироватьФайл("\\192.168.1.14\SharedDocs\Test.rar", "F:\Test.rar"); Конец = MSScriptControl.eval("new Date().getTime()"); Результат = (50/((Конец - Начало)/1000))*8; ЭлементыФормы.Надпись1.Заголовок = Окр(Результат,2); КонецПроцедуры Толку - 0. Файл 50 мегабайтный. Первое выполнение очень долгое, остальные вообще жутко быстрые. Даже близко похожих цифр не получается. Может первое выполнение и 45мбит быть и 145мбит. Сетка 100мбитная. Надо что-то другое думать. |
|||
15
Serginio1
24.12.13
✎
11:41
|
(14) Ну не совсем простой. Ты можешь указать размер данных
правда они ограничены размером 65 500 байт http://msdn.microsoft.com/ru-ru/library/ms144956(v=vs.110).aspx |
|||
16
Serginio1
24.12.13
✎
11:44
|
Или можешь как v8: v8: Использование сборок .NET в 1С 7.x и 8.x
по TCP/IP данные попередвать |
|||
17
Serginio1
24.12.13
✎
11:47
|
(16) Правда там данные сжимаются. Но реально тебе нужен тест именно по TCP/IP
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |