powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / c# class для замера продолжительность события в наносекундах
106 сообщений из 106, показаны все 5 страниц
c# class для замера продолжительность события в наносекундах
    #37405648
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Пожалуйста, поделитесь ссылкой или готовым c# class-ом для замера продолжительности события в наносекундах.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37405714
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Testor1Всем привет!

Пожалуйста, поделитесь ссылкой или готовым c# class-ом для замера продолжительности события в наносекундах.


Нужно написать подобие ping-а
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406785
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нафига вам для ping наносекунды, причем на C#?

но это не значит, что настоящие извращенцы этого не могут :)

итак:
берете расширение дебаггера SOS для .net
ставите в нем точку останова на вызове !DumpHeap, !DumpObject, !DumpMT, !DumpMD
Ваша первая задача точно стырить внутренние структуры для описания типов под конкретную версию точки нет. Т.е. вам нужно найти структуру описания Типа (куда ссылается OBJREF), далее оттуда вам нужно перейти к MethodDef (эта та структура на которую указывает TypeRef у каждого объекта), там есть перечисление MethodDef. У MethodDef есть поле указывающее на либо на скопилированный код либо на IL (ну и флаг, говорячий куда смотрит указатель, типа IsJitted).
так вот - далее дело за малым - вставить в уже в откомпилированный код вызовы rdtsc (это asm) и куда-нть записать

общая задача безусловно сложна, а вот для одной единственной функции написать затыку которая реально считает время в тактах - впринципе я думаю не очень сложно, хотя и повозиться придется (можно сделать unsafe вставку (вначале функции и в конце), которая оставляет несколько байт для того, чтобы сказать rdtsc а потом результат из eax перегнать в память)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406792
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аписко,
в TypeRef ссылается на MethodTable, а в MethodTable есть указатели на MethodDesc, а уже в нем - указатель на скомпилированный код либо на IL
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406835
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1Всем привет!

Пожалуйста, поделитесь ссылкой или готовым c# class-ом для замера продолжительности события в наносекундах.

http://msdn.microsoft.com/ru-ru/library/bb397808%28v=vs.90%29.aspx

Не устроит?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406863
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DENIS_CHELTestor1Всем привет!

Пожалуйста, поделитесь ссылкой или готовым c# class-ом для замера продолжительности события в наносекундах.

http://msdn.microsoft.com/ru-ru/library/bb397808%28v=vs.90%29.aspx

Не устроит?
товарисч хочет НАНОсекунды :)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406872
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр2DENIS_CHELпропущено...


http://msdn.microsoft.com/ru-ru/library/bb397808%28v=vs.90%29.aspx

Не устроит?
товарисч хочет НАНОсекунды :)

Цель супер извращенная, но нужно измерить удаленность сетевого (ip) узла с точностью чем меньше тем лучше.
не спрашивайте зачем - просто очень нужно, если это возможно.
Есть понимание что каждое звено в сети вносит свои задержки/погрешность в этой не простой затее + еще и загруженность канала.

Код: 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.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
using System.Net.Sockets;
using System.Diagnostics;
using System.Threading;
using System.Net;

namespace ConsoleApplication1
{
    class Program
    {
        //C#
        [DllImport("KERNEL32")]
        public static extern int QueryPerformanceFrequency
        (
            ref Int64 lpFrequency
        );

        [DllImport("KERNEL32")]
        public static extern int QueryPerformanceCounter
        (
            ref Int64 lpPerformanceCount
        );

        static void Main(string[] args)
        {
            DateTime startTime, endTime;
            Int64 minDiff=1000000;
            Int64 freq = 0;
            Double time_ms = 0;
            Double mintime_ms = 1000000;
            Int64 mindistance = 0;
            Int64 count1 = 0;
            Int64 count2 = 0;
            Int64 distantse = 0;
            Int64 ls = 299792458;
            Int64 counts = 0;
            Int64 Overhead = 0;

            System.Net.IPAddress ipAddress = new System.Net.IPAddress(System.Net.IPAddress.Parse("127.0.0.1").GetAddressBytes());


            for (int i = 0; i < 1000; i++)
            {
                try
                {

                    if (QueryPerformanceFrequency(ref freq) != 0)
                    {

                        TcpClient tcpClient = new TcpClient();

                        count1 = 0;
                        count2 = 0;

                        QueryPerformanceCounter(ref count1);
                        tcpClient.Connect(ipAddress, 80);
                        QueryPerformanceCounter(ref count2);

                        if (count1 != 0 && count2 != 0)
                        {
                            time_ms = ((double)(count2 - count1)) / (3*freq);
                            distantse = (299792458 * (count2 - count1)) / (3*freq);
                            if (time_ms < mintime_ms)
                            {
                                mintime_ms = time_ms;
                                mindistance = distantse;
                            }

                            Console.WriteLine("Seconds:" + time_ms.ToString() + " Distantse:" + distantse.ToString());
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }

            }

            Console.WriteLine("Minimal time:" + mintime_ms.ToString()+" Minimal distance:"+mindistance.ToString());

            Console.ReadKey();

        }

    }
}



...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406880
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это адские попытки HFTить на C#? ))))
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406884
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А за что
Код: plaintext
void Main
?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406907
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2товарисч хочет НАНОсекунды :)

Ну да, на стареньком семпроне разрешение этого таймера 1 / 3 579 545, т.е. примерно 1/4 микросекунды. При двух подряд вызовах QueryPerformanceCounter тикает на 8 тиков, т.е. "пустой" замер занял 0.000002235 сек.

На более новых платформах может и побольше разрешение.

Но, блин, из вышеприведенных чисел автор-то должен уяснить, что 1/1000 от 1/1000 сек (1 микросекунда) ему с головой хватит не зависимо от того, что он меряет ибо даже просто померять "ничего" занимает 2 микросекунды (на слабом CPU конечно). Т.е. мерять еще в 1000 раз точнее обломается.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406910
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1Есть понимание что каждое звено в сети вносит свои задержки/погрешность в этой не простой затее + еще и загруженность канала.
Но нет понимания, что уровень НАНОсекунд в данном случае - это уже теория, а не практика. На практике каждый пук твоего приложения обходится в сотни раз длиннее.

А еще удивляет выбранный тобой инструмент. Почему не C++? И почему многозадачная винда, которая твое приложение много раз в секунду может откладывать в сторону. Если понадобится, то даже на миллисекунды, а не на микросекунды.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406921
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonTestor1Есть понимание что каждое звено в сети вносит свои задержки/погрешность в этой не простой затее + еще и загруженность канала.
Но нет понимания, что уровень НАНОсекунд в данном случае - это уже теория, а не практика. На практике каждый пук твоего приложения обходится в сотни раз длиннее.

А еще удивляет выбранный тобой инструмент. Почему не C++? И почему многозадачная винда, которая твое приложение много раз в секунду может откладывать в сторону. Если понадобится, то даже на миллисекунды, а не на микросекунды.

В идее, это должен быть ansembler :)
нужно грузится чуть ли не на уровне биоса и так делать.

Но это нереально трудоемко. Задача разовая и результат очень нужен.
Можно зайти в safemode + network и там запустить

С++ вспоминать надо. c# знаю
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406923
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragon,

авторПочему не C++?
Или вообще asm с полным контролем происходящего.
И внедриться на уровень ядра конечно же.

Да и еще хотелось бы узнать, каков разброс замеров,если один и тот же узел пропинговать сотню раз? Я так понимаю, что задача применима только к локалке. И то, после испытаний может оказаться, что она ничего не показывает. Т.е. например время прохода пакета через свич и сетевухи занимает 99% времени и лишь 1% времени приходится на передвижение по кабелям. В итоге разница пинга между 50-метровым сегментом и 10-метровым составит допустим 0.5% по времени. И что дальше? Разброс измерений допустим 2-3%. Как ты собираешься увидеть разницу в 0.5% в таком разбросе? Она теряется ))

А если мерять внешний мир, то извини - бред, а не задача )))
Узел на расстоянии 100 км, проходя через тормозной сервер, пингуется 300 мс, а узел на другом конце планеты - 50 мс. Какие выводы?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406927
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragon,

авторВ итоге разница пинга между 50-метровым сегментом и 10-метровым составит допустим 0.5% по времени.
На самом деле ее вообще не будет. Т.е. в наносекундах может и будет, только обычный комп для этого не подходящий измеритель. Проще купить спец. прибор.

Ну а если не для локалки, то выше уже написал по этому поводу ))

P.S.: Хочешь вычислить недоброжелателя в домашней локалке что ли?
Так тогда лучше применить социально-психологические методы.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406946
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonEdd.Dragon,

авторПочему не C++?
Или вообще asm с полным контролем происходящего.
И внедриться на уровень ядра конечно же.

Да и еще хотелось бы узнать, каков разброс замеров,если один и тот же узел пропинговать сотню раз? Я так понимаю, что задача применима только к локалке. И то, после испытаний может оказаться, что она ничего не показывает. Т.е. например время прохода пакета через свич и сетевухи занимает 99% времени и лишь 1% времени приходится на передвижение по кабелям. В итоге разница пинга между 50-метровым сегментом и 10-метровым составит допустим 0.5% по времени. И что дальше? Разброс измерений допустим 2-3%. Как ты собираешься увидеть разницу в 0.5% в таком разбросе? Она теряется ))

А если мерять внешний мир, то извини - бред, а не задача )))
Узел на расстоянии 100 км, проходя через тормозной сервер, пингуется 300 мс, а узел на другом конце планеты - 50 мс. Какие выводы?

Конечный IP - ADSL модем. Он бывает не загруженным.
Пункт в 9 хопах.

Если вычислить минимальное время прохождение пакета в ночное время (выбираем минимальное из тестов) до ADLS устройства и отдельно до ADSL модема, то можно вычислить расстояние между ними - вычитаем = (время до модема - время до роутера) * скорость света

возникла смешная проблема
если на модеме есть открытые порты, то на роутере их нет.
то есть нет возможности зацепиться за открытие TCP порта.
как можно по другому сделать на C# ?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406952
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1,

авторЕсли вычислить минимальное время прохождение пакета в ночное время (выбираем минимальное из тестов) до ADLS устройства и отдельно до ADSL модема, то можно вычислить расстояние между ними - вычитаем = (время до модема - время до роутера) * скорость света

Ты читаешь внимательно?

узел1: 2
узел2: 12
узел3: 78
узел4: 215

вычисли расстояние.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406954
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или ты знаешь способ как пропинговать узел3 с обоих его сторон, чтобы вычислить время задержки сигнала на узле3? :o

P.S.: А почему скорость света? Известно, что все сегменты сети оптические?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406963
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1Edd.Dragonпропущено...

Но нет понимания, что уровень НАНОсекунд в данном случае - это уже теория, а не практика. На практике каждый пук твоего приложения обходится в сотни раз длиннее.

А еще удивляет выбранный тобой инструмент. Почему не C++? И почему многозадачная винда, которая твое приложение много раз в секунду может откладывать в сторону. Если понадобится, то даже на миллисекунды, а не на микросекунды.

В идее, это должен быть ansembler :)
нужно грузится чуть ли не на уровне биоса и так делать.


Но это нереально трудоемко. Задача разовая и результат очень нужен.
Можно зайти в safemode + network и там запустить

С++ вспоминать надо. c# знаю
извините, но мне кажется вы гоните, причем по жесткому :)
человека, для которого С++ вспоминать надо, наносекунды слушаться не будут :)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406966
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр2Testor1пропущено...


В идее, это должен быть ansembler :)
нужно грузится чуть ли не на уровне биоса и так делать.


Но это нереально трудоемко. Задача разовая и результат очень нужен.
Можно зайти в safemode + network и там запустить

С++ вспоминать надо. c# знаю
извините, но мне кажется вы гоните, причем по жесткому :)
человека, для которого С++ вспоминать надо, наносекунды слушаться не будут :)

ну я на c++ писал взломщик RSA, но это было давно ...
уже не молод. не так легко переключаться между языками

сейчас больше на sql пишу.

а сейчас нужно решать конкретную задачу. использую то чем владею и что подходит.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406972
Александр2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1Александр2пропущено...

извините, но мне кажется вы гоните, причем по жесткому :)
человека, для которого С++ вспоминать надо, наносекунды слушаться не будут :)

ну я на c++ писал взломщик RSA, но это было давно ...
уже не молод. не так легко переключаться между языками

сейчас больше на sql пишу.

а сейчас нужно решать конкретную задачу. использую то чем владею и что подходит.
отдайте на оутсорс и все дела, нет смысла самому корячиться, если не получается
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406973
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1,

Так что на счет выяснения времени прохождения промежуточных узлов - как?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406978
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр2отдайте на оутсорс и все дела, нет смысла самому корячиться, если не получается
Ну, человека, который без тени улыбки напишет микроскоп-орехокол найти будет трудно )))
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406979
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonTestor1,

Так что на счет выяснения времени прохождения промежуточных узлов - как?

Контекст вопроса ?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406994
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1,

Да выше же. Два подряд сообщения моих с вопросами.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406996
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonTestor1,

Да выше же. Два подряд сообщения моих с вопросами.

И там первым вопросом: " Ты читаешь внимательно? "
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37406997
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonTestor1,

авторЕсли вычислить минимальное время прохождение пакета в ночное время (выбираем минимальное из тестов) до ADLS устройства и отдельно до ADSL модема, то можно вычислить расстояние между ними - вычитаем = (время до модема - время до роутера) * скорость света

Ты читаешь внимательно?

узел1: 2
узел2: 12
узел3: 78
узел4: 215

вычисли расстояние.

только нужен не обычный пинг

в случае когда загрузка сети минимальна
то 215-78 = 137 * на скорость электрического тока
реально скорость еще меньше из-за кодирование сигнала.


в теории я могу подключить разных людей, которые будут пинговать этот адрес с разных IP но находясь в этом городе
возможно я так как-то смогу уменьшить погрешность
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37407040
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Testor1]
Ну если у тебя есть свой человек, на пути к которому присутствуют все те узлы, которые есть на пути искомого хоста, то да, задача решаема, т.к. каждый из 6 промежуточных хостов ты можешь пропинговать в обе стороны.

Но допустим имеем пути

я - 1 - 2 - 3 - 4 - 5 - 6 - аноним
я - 1 - 2 - 3 - 4 - 5 - 6 - друг

мы выясняем, что
"6 - друг" = 5 км
"6 - аноним" = 3 км

координаты друга известны.

чертим вокруг координаты друга круг радиусом 5 км. Узел 6 находится в любой точке этой окружности. А аноним находится на 3-километровой окружности от этой любой точки. Т.е. в итоге мы выяснили, что аноним находится в радиусе от 2 до 8 километров от друга в неизвесном от друга направлении. Не очень-то полезная информация. Это почти то же самое, что утверждение "они в одном городе".

А если же пути следующие:
я - 1 - 2 - 3 - 4 - 5 - 6 - аноним
я - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - друг

то это гораздо хуже. Собственно и выйдет - они в одном городе.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37407166
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Edd.Dragon]Testor1Ну если у тебя есть свой человек, на пути к которому присутствуют все те узлы, которые есть на пути искомого хоста, то да, задача решаема, т.к. каждый из 6 промежуточных хостов ты можешь пропинговать в обе стороны.

Но допустим имеем пути

я - 1 - 2 - 3 - 4 - 5 - 6 - аноним
я - 1 - 2 - 3 - 4 - 5 - 6 - друг

мы выясняем, что
"6 - друг" = 5 км
"6 - аноним" = 3 км

координаты друга известны.

чертим вокруг координаты друга круг радиусом 5 км. Узел 6 находится в любой точке этой окружности. А аноним находится на 3-километровой окружности от этой любой точки. Т.е. в итоге мы выяснили, что аноним находится в радиусе от 2 до 8 километров от друга в неизвесном от друга направлении. Не очень-то полезная информация. Это почти то же самое, что утверждение "они в одном городе".

А если же пути следующие:
я - 1 - 2 - 3 - 4 - 5 - 6 - аноним
я - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - друг

то это гораздо хуже. Собственно и выйдет - они в одном городе.


определив на какой атс стоит оборудование, я могу сузить поиск. центр радиуса - АТС. Ведь это АДСЛ.
Радиус не равномерно застрроен домами. Есть пустыри.
То есть не все так плохо :)

Вопрос - как на с# написать правильный пинг :)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37407660
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1...Нужно написать подобие ping-а


тут уже выше написали - это мягко говоря глупость. Сточки зрения анализа удалённости - в сети нет фиксированных таймингов как таковых (как ни странно это звучит). Вы должны будете делать разные тесты, в разное время, разной интенсивности для выявления достоверности результата.

По поводу замеров.
Физически выжать из писюка можно, то что Вы хотите. Но шарп отдыхает. Как минимум Вам придёться писать на уровне ядра. Но даже сделав всё это - погрешность измерений будет плюс минус километр.

Для начала Вам необходимо решить задачу по перепрограммированию 8253 (комплект x86 семейства. на пнях по идеи должно быть всё вверх совместимо) - так называемый PIT (программируемый интервальный таймер). Там 3 канала (гейта). Идеально найти свободный (с минимальными привнесениями в систему) - но это вряд ли. На самых первых компах один гейт заведовал системным таймером (тот что 18 с хвостиком раз в секунду), второй для регенерации памяти и пдп (если не ошибаюсь). третий вроде как чего то там и звук(не помню уже - копайте да обрящите). Если под форточками сможете покрамсать какой либо из них - то вы справились с задачей.

Далее
1) перепрограммировать один из каналов 8253 на нужную частоту (там есть предделитель тактовой - собственно надо его сбросить в одын).
2) считываете показания.
3) посылаете пинг
4) принимаете пинг
5) считываете показания.
6) вычисляете время. оно равно второе показание, минус первое, минус шаги проца между считываниями и посылкой/приёмкой пакетов.
7) повторяете это энное кол-во раз с таймаутом успокоения, в разное время суток и недели.

собственно всё.
Но. (как же без них). Как правильно тут прозвучало - среда вытесняющая. Соответственно фазы 2,3,4,5 должны быть как можно ближе друг к другу по времени и в монопольном режиме.

но перед тем как делать, всё же подумайте - сможете ли вы померять 5 см. длины, резинкой?

удачи вам
(круглый)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37407738
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolobok0,

Понимаю вашу мысль ... и согласен с ней, но ... бывают не стандартные решения

Сложно написать пинг на C#, который дает точность в микросекундах ?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37407774
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Testor1kolobok0,

Понимаю вашу мысль ... и согласен с ней, но ... бывают не стандартные решения

Сложно написать пинг на C#, который дает точность в микросекундах ?

Чем ближе - тем пинг будет меньше :)
но это не 100% утверждение
есть другие факторы, но все же
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37407918
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1...Сложно написать пинг на C#, который дает точность в микросекундах ?

если учесть что шарп исполняется под своей машиной, которую может прервать сборщик мусора (к примеру), кстати на несколько СЕКУНД - это реально.... то Вы сами ответите на свой вопрос :)

предположим что что такие казусы будут редки. тогда всё то же самое что я писал выше, за исключением программирования 8253 - чисто опрос его счётчиков. Либо системных, любой API функцией. Точность переключения задач - несколько десятков милисекунд. Если Вам это достаточно - то пробуйте.

но сдаётся мне Вы будете мерять 5 см. резиновым метром :)

(круглый)
ЗЫ
Можно попробывать натификэшен от сетевого уровня внутри программы - но опять же, в цепочку включаются обработчики ивентов.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408125
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1ну я на c++ писал взломщик RSA, но это было давно ...
уже не молод. не так легко переключаться между языками

Мерять с такой точностью довольно трудно. Вобщем, процессор
и твой исполняемый код под .net "шумит" с большей гранулярностью
чем наносекунда. Поэтому чтобы получить наносекунды нужно
делать очень-очень много измерений и находить арифметическое
среднее. Я щас не помню формул но предположим что измерений
надо будет сделать около сотни. Но тебе ждать будет скучно и
захочестся видеть решение "грубее" но быстрее.

Отсюда вобщем-то напрашивается вывод что для принятия решения
по твоей проблеме можно сделать 5-6 замеров с достигая точности милисекунд
и этого уже будет достаточно.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408163
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1Сложно написать пинг на C#, который дает точность в микросекундах ?
Этот вопрос был успешно решен еще на первой странице ))
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408174
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Ничего тебе среднее не даст, не говори глупости. Ты хоть 1000 раз обычной линейкой померь болт. Но разделив сумму на 1000 ты никак не получишь точность более 0.5 мм, которые ты с успехом получаешь и при 1 измерении (цена деления - 1мм, плюс ты ее визуально можешь разделить пополам и получить 0.5 мм). Цена деления в шарпе (если никто мешать не будет!!!) порядка 1 микросекунды. Всё.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408186
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragon, один болт или очень много болтов?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408204
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

1000 пингов - это как раз 1000 замеров одного болта. Почему нам не достаточно одного замера? Потому что у нас нет стабильной линейки. У нас есть "шумящая" линейка, потому каждый замер одного и того же болта отличается друг от друга. В итоге среднее по 1000 замерам нивелирует шум нашей нестабильной линейки, а не увеличивает ее точность.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408227
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А много болтов - это проложить 100 идентичных сегментов сети друг за другом с репитерами. При этом гарантировать, что задержка сигнала на репитерах известна с достаточной точностью и ее разброс не больше требуемой точности измерения. Замерить прохождение сигнала по всей длине из 100 сегментов,вычесть время репитеров, разделить на 100. Такое измерение будет в 100 раз точнее, чем замерять отдельно взятый короткий сегмент. Опять таки все 99 репитеров и 100 сегментов должны показывать одинаковое время, а не болтаться в диапазоне в 1000 раз превышающем измеряемое время.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408239
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати о репитерах )))

между модемом клиента и модемом на АТС ведь не цельный кабель проложен )))
В итоге, если посчитать, что он цельный - получится, что между клиентом и АТС 200 км, а не 2 км )))
А что бы так не вышло, нужно знать из каких запчастей (сколько оптики, сколько обычного кабеля, сколько репитеров или свичей) состоит этот последний сегмент (остальные нас не интересуют, т.к. мы якобы знаем расположение АТС). А нам это все не известно. И никакими пингами мы не получим количество и время прохождения пингов, количество и тип кабеля. Так что, бинго недостижимо.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408844
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonTestor1ну я на c++ писал взломщик RSA, но это было давно ...
уже не молод. не так легко переключаться между языками

Мерять с такой точностью довольно трудно. Вобщем, процессор
и твой исполняемый код под .net "шумит" с большей гранулярностью
чем наносекунда. Поэтому чтобы получить наносекунды нужно
делать очень-очень много измерений и находить арифметическое
среднее. Я щас не помню формул но предположим что измерений
надо будет сделать около сотни. Но тебе ждать будет скучно и
захочестся видеть решение "грубее" но быстрее.

Отсюда вобщем-то напрашивается вывод что для принятия решения
по твоей проблеме можно сделать 5-6 замеров с достигая точности милисекунд
и этого уже будет достаточно.

Почему среднее, а не наименьшее из серии тестов ? :)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408865
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.Dragon,

От устройства DSLAM - до модема - кабель максиму 10 км.
Иначе инет не будет работать
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37408878
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1Edd.Dragon,

От устройства DSLAM - до модема - кабель максиму 10 км.
Иначе инет не будет работать
В смысле? Т.е. к чему это?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37409325
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а) Провести в цикле 1000 замеров
б) Замерять время за которое выполнился пункт "а" допустим 5 микросекунд
в) Разделить 5 микросекунд на 1000 получить, 5 нс, точное усредненное время.

Повысили точность измерения + Получили наносекунды.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37409332
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistа) Провести в цикле 1000 замеров
б) Замерять время за которое выполнился пункт "а" допустим 5 микросекунд
в) Разделить 5 микросекунд на 1000 получить, 5 нс, точное усредненное время.

Повысили точность измерения + Получили наносекунды.

Ну как бы это и есть сабжевый вопрос)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410316
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistа) Провести в цикле 1000 замеров
б) Замерять время за которое выполнился пункт "а" допустим 5 микросекунд
в) Разделить 5 микросекунд на 1000 получить, 5 нс, точное усредненное время.

Повысили точность измерения + Получили наносекунды.

С ручника... )))

Пинг, он допустим 2 мс - один.
Тысячу пингов - 2000 мс (2 сек).
Делим на 1000 - получаем "в среднем 2мс".

А нам надо с точностью наносек. Т.е .получать, не 2 мс, а при замерах, а 2.0000005. И что бы вот это 5 было не шумом, а реальным замером.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410319
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonТ.е .получать, не 2 мс, а при замерах, а 2.0000005.
Т.е. получать при замере не 2 мс, а 2.0000005 мс (или 0.002000005 с!!!)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410357
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragonmayton,

1000 пингов - это как раз 1000 замеров одного болта. Почему нам не достаточно одного замера? Потому что у нас нет стабильной линейки. У нас есть "шумящая" линейка, потому каждый замер одного и того же болта отличается друг от друга. В итоге среднее по 1000 замерам нивелирует шум нашей нестабильной линейки, а не увеличивает ее точность.
(ух-ты. сабж продолжается. я и не заметил сорри)

Верно. Но статистика абстрагируется от точности измерительного прибора. Если взять к
примеру Performance Counters в MSWindows или v$*stat представления в RDBMS Oracle.
Большинство из них - это просто целочисленные счётчики событий. Их мгновенное
значение не имеет никакого смысла. Но если мы меряем текущее значение v1, ожидаем
некоторое время t1 и меряем еще одно v2 во время t2 и далее можем получать
усреднённые значения скорости генерации событий (v2-v1)/(t2-t1) с любой точностью.
Это дешёвая и эффективная методика оценки производительности систем
работающих под нагрузкой. Эффективнее я еще не видел.

Я не буду спорить по поводу "абсолютной погрешности" измерительного прибора
"цены деления" и прочих вещей. Но я ЗНАЮ как оценить или как СРАВНИТЬ две
системы имея грубый инструмент вроде сабжевого ping и т.п.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410391
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо статистика абстрагируется от точности измерительного прибора.
А вопрос то как получить желаемую точность.

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

А вопрос точности - это уже к ней. Я это понимаю ))
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410394
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того, ТС утверждает, что статистика ему и не нужна. Ему нужно минимальное измерение из замеров в разные моменты. По большому счету он прав.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410396
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка:

А вопрос точности - это уже НЕ к ней.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410522
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonКроме того, ТС утверждает, что статистика ему и не нужна. Ему нужно минимальное измерение из замеров в разные моменты. По большому счету он прав.

Все гениально просто - чем ближе к цели, тем меньше пинг :)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410534
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
а как современные гигабитные сетевухи вычисляют длину кабеля?
при чем до обрыва тоже. то есть совершенно неважно есть устройство с той стороны или нет его...
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410562
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жесть.
Открою вам секрет из метрологии, если провести не тысячу замеров, а допустим сто тысяч или сто миллионов,
то с точностью до наносекунд можно замерять даже на наручных механических часах ...

Обьясняется это обычным математическим рядом.
Допустим линейка у нас ток микросекунду показывает, итого.
Реальное время 0.999 микросекунд, один замер показывает ровно 1 микросекунду.
Сделав тысячу замеров, получаем 999 микросекунд, что не противоречит точности линейки.
Делим 999/1000 = 0.999 микросекунды.

Короче увеличение общего количества замеров в десять раз увеличивает точность замера в десять раз.
Метрология, наука о измерениях, ничего более.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410596
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseа как современные гигабитные сетевухи вычисляют длину кабеля?
при чем до обрыва тоже. то есть совершенно неважно есть устройство с той стороны или нет его...
1. Длину кабеля или длину сегмента между двумя пингующимися устройствами, который может состоять из N кусков неизвестной природы кабеля, репитеров, свичей и т.д.?

2. Сетевухи работают под управлением многозадачной среды, а код, который посылает сигналы, работает не просто в этой среде, а еще и в managed-окружении, которая уже работает в ОС?

3. Сетевухи имеют в своем арсенале только доступные в C# или WinAPI функции или же могут замерять и время, и уровень сигнала, замерять с точностью, которую обеспечили проектировщики платы, создавая ее для этой задачи, т.е. создали такую возможность аппаратно (а ТС решает задачу программно вопроки возможностям)?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410618
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseа как современные гигабитные сетевухи вычисляют длину кабеля?
при чем до обрыва тоже. то есть совершенно неважно есть устройство с той стороны или нет его...
Я не знал о таком протоколе. А где об этом можно почитать?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410626
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistжесть.
Открою вам секрет из метрологии, если провести не тысячу замеров, а допустим сто тысяч или сто миллионов,
то с точностью до наносекунд можно замерять даже на наручных механических часах ...

Прочий бред проскипан...

Возьми сто миллионов болтов и портняжный метр (тряпочный такой, с сантиметровыми делениями)
Задача - определить диаметр болтов с точностью до 0,1 мм.
Решай!

Метролог, блин!!!
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410641
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###Bazistжесть.
Открою вам секрет из метрологии, если провести не тысячу замеров, а допустим сто тысяч или сто миллионов,
то с точностью до наносекунд можно замерять даже на наручных механических часах ...

Прочий бред проскипан...

Возьми сто миллионов болтов и портняжный метр (тряпочный такой, с сантиметровыми делениями)
Задача - определить диаметр болтов с точностью до 0,1 мм.
Решай!

Метролог, блин!!!

Если каждый болт будет фиксированой ширины, например меньше на микрометр.
То выложеная стопка из миллиона болтов будет меньше на целый метр и не потребует высокоточных
штангельциркулей.

КЭП
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410644
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже с взвешиванием, одно зернышко например мака никто не может взвесить до тысячных долей грамма.
Нет таких весов. Но возьмите стакан мака, пересчитайте крупицы, взвесьте все вместе и разделите на количество
маковых зернышек и получите очень точный вес одного зернышка мака.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410649
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist,
Тебе пора менять ник на Троллист. Ничего другого на форумах от тебя не исходит.
Либо предоставляй пруфлинки, либо не неси вненаучную чушь.

То, что при взвешивании не меняющего свой вес куска мяса, путем усреднения мы уменьшаем случайную составляющую погрешности взвешивания (весы показывают то 707, то 705, и т.д.) - это очевидно и даже интуитивно понятно.

Но весы показывают граммы. И усредненный результат точно так же имеет точность 1 грамм. Если погрешность измерения 1 грамм. То погрешность 1000 измерений - 1000 грамм. А погрешность среднего - снова 1 грамм. При этом в этом среднем уровень случайной составляющей во сколько-то там раз ниже, чем ее уровень в отдельно взятом измерении. Не?

А у нас еще и кусок мяса вес свой меняет. При чем в серьезных пределах. Метрология намекает, что в таком случае усреднение не пригодно даже для уменьшения случайной составляющей.

Так что увы и ах.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410654
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###Возьми сто миллионов болтов и портняжный метр (тряпочный такой, с сантиметровыми делениями)
Задача - определить диаметр болтов с точностью до 0,1 мм.
Решай!

Метролог, блин!!!
Тряпичный растягивается )))
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410656
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistТоже с взвешиванием, одно зернышко например мака никто не может взвесить до тысячных долей грамма.
Нет таких весов. Но возьмите стакан мака, пересчитайте крупицы, взвесьте все вместе и разделите на количество
маковых зернышек и получите очень точный вес одного зернышка мака.
Ты вообще разницу между 1000 взвешиваниями 1 зернышка и 1 взвешивания 1000 понимаешь?
Раньше ты первое предлагал. А для увеличения точности нужно второе, КО!
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410658
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты все напутал.
Дело не в усреднении результатов тысячи измерений, нахождения арифметического среднего.
А замера грубой линейкой суммы тысячи измерений один за одним.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410661
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistТоже с взвешиванием, одно зернышко например мака никто не может взвесить до тысячных долей грамма.
Нет таких весов. Но возьмите стакан мака, пересчитайте крупицы, взвесьте все вместе и разделите на количество
маковых зернышек и получите очень точный вес одного зернышка мака.
Ты вообще разницу между 1000 взвешиваниями 1 зернышка и 1 взвешивания 1000 понимаешь?
Раньше ты первое предлагал. А для увеличения точности нужно второе, КО!

одно измерение но тысячи пингов которые идут один за одним,
я же там написал.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410662
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###Bazistжесть.
Открою вам секрет из метрологии, если провести не тысячу замеров, а допустим сто тысяч или сто миллионов,
то с точностью до наносекунд можно замерять даже на наручных механических часах ...

Прочий бред проскипан...

Возьми сто миллионов болтов и портняжный метр (тряпочный такой, с сантиметровыми делениями)
Задача - определить диаметр болтов с точностью до 0,1 мм.
Решай!

Метролог, блин!!!
Ну... у нас в реальной жизни никто не ставит постановки типа взять сто миллионов болтов,
но чисто инженерно, сложив их стопочкой можно мерять группы или как-то там по массе...
Впрочем к сабж это весьма отдалено. Ведь мы меряем IT-шные характеристики времени которые
удобнее считать кумулятивно.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410667
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не отдаленно, суперточные линейки и не нужны никогда в технике. Но замеры нужны вплоть до наносекунд.
Есть другие способы получить достоверные данные до требуемой точности на грубых линейках.
Как в той задаче сколько весит одно маковое зернышко.
Если стакан весит 354 грамма на электронных весах, при том что в стакане миллион зернышек,
то вес одного зернышка
0.00035465 грамма
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410669
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Вы сугубо теоретически рассуждаете? Или реально знаете что-то про "кумулятивные" пинги?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410671
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistодно измерение но тысячи пингов которые идут один за одним,
я же там написал.
1 пинг - это измерение. 1000 пингов - это 1000 измерений. Уже совсем мимо кассы начал придумывать.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410672
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЭто не отдаленно, суперточные линейки и не нужны никогда в технике. Но замеры нужны вплоть до наносекунд.
Есть другие способы получить достоверные данные до требуемой точности на грубых линейках.
Как в той задаче сколько весит одно маковое зернышко.
Если стакан весит 354 грамма на электронных весах, при том что в стакане миллион зернышек,
то вес одного зернышка
0.00035465 грамма

Про болты задачу реши - тЭоретик!!!
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410673
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistодно измерение но тысячи пингов которые идут один за одним,
я же там написал.
1 пинг - это измерение. 1000 пингов - это 1000 измерений. Уже совсем мимо кассы начал придумывать.

Ты чо дурак ?

Возьми в цикл

Код: plaintext
1.
2.
3.
4.
5.
6.
int start = getTime();
for(int i=0; i<1000; i++)
   ping();
int end = getTime();

int result = (end-start)/1000;

Чо сложно для понимания до сих пор ?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410675
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###,

она уже решена.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410680
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЕсли стакан весит 354 грамма на электронных весах, при том что в стакане миллион зернышек,
то вес одного зернышка
0.00035465 грамма
1. Но мильен пингов - это мильен взвешиваний по зернышку...
На каждое из которых весы покажут либо 0, либо 1 грамм.

2. Пинги у нас вообще по весу отличаться могут в десятки раз. Так что мильен пингов без толку делить на мильен. У нас точного значения как такового ))) Но точность измерения - есть.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410681
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###mayton,

Вы сугубо теоретически рассуждаете? Или реально знаете что-то про "кумулятивные" пинги?
Давайте вспомним как ping вообще работает. Насколько я знаю есть разные имплементации.
В Windows и Linux даже разные типы протоколов работают (TCP/ICMP). И возможно
есть разные способы "интерпретации" результатов.

Просто я хочу устаканить "начальные условия". Чтобы потом не было обидно
за бесцельно потраченное...

Надеюсь понятно сказал.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410682
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistЕсли стакан весит 354 грамма на электронных весах, при том что в стакане миллион зернышек,
то вес одного зернышка
0.00035465 грамма
1. Но мильен пингов - это мильен взвешиваний по зернышку...
На каждое из которых весы покажут либо 0, либо 1 грамм.

2. Пинги у нас вообще по весу отличаться могут в десятки раз. Так что мильен пингов без толку делить на мильен. У нас точного значения как такового ))) Но точность измерения - есть.

эта тема уже достойна ПТ, премия дарвина.
Я запощу, не поленюсь.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410685
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist###,

она уже решена.

Где?

Сложить "стопочкой" сто мильёнов болтов?
Позови посмотреть, когда будешь складывать!!!
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410690
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###Bazist###,

она уже решена.

Где?

Сложить "стопочкой" сто мильёнов болтов?
Позови посмотреть, когда будешь складывать!!!
А чтобы измерять средний рост китайца ты будешь
собирать ВСЕХ китайцев? Не чуди, ты если
учился в универе должен был проходить
методы мат-статистики.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410691
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton###mayton,

Вы сугубо теоретически рассуждаете? Или реально знаете что-то про "кумулятивные" пинги?
Давайте вспомним как ping вообще работает. Насколько я знаю есть разные имплементации.
В Windows и Linux даже разные типы протоколов работают (TCP/ICMP). И возможно
есть разные способы "интерпретации" результатов.

Просто я хочу устаканить "начальные условия". Чтобы потом не было обидно
за бесцельно потраченное...

Надеюсь понятно сказал.
Если честно - первый раз слышу, что ping реализуется на чем-то отличном от ICMP. RFC
Хотя - возможно я отстал от жизни...
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410692
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложил сто миллионов измерений:

Код: plaintext
1.
2.
3.
4.
5.
6.
int start = getTime();
for(int i=0; i<100000; i++)
   ping();
int end = getTime();

int result = (end-start)/1000;
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410694
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил
Bazist
Код: plaintext
1.
2.
3.
4.
5.
6.
int start = getTime();
for(int i=0; i<100000000; i++)
   ping();
int end = getTime();

int result = (end-start)/100000000;
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410696
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot mayton]###пропущено...

А чтобы измерять средний рост китайца ты будешь
собирать ВСЕХ китайцев? Не чуди, ты если
учился в универе должен был проходить
методы мат-статистики.

mayton,
речь шла об измерении диаметра болтов порнняжным метром, т.е. заведомо неподходящим инструментом
Это не моя идея - взять замеров побольше
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410697
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###Если честно - первый раз слышу, что ping реализуется на чем-то отличном от ICMP. RFC
Хотя - возможно я отстал от жизни...
Верно ICMP. Я спутал с работой tracert и traceroute.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410698
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410701
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
###mayton,
речь шла об измерении диаметра болтов порнняжным метром, т.е. заведомо неподходящим инструментом
Это не моя идея - взять замеров побольше

Есть линейка, просто миллиметровка швейная.
Ширина одного болта 0.9 см. Как измерить точно ?
Сложить десять болтов. Их ширина будет ровно 9 см с точностью до миллиметра,
а не 10 см если мерять по одному.

Чо еще не понятно ?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410705
###
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist###mayton,
речь шла об измерении диаметра болтов порнняжным метром, т.е. заведомо неподходящим инструментом
Это не моя идея - взять замеров побольше

Есть линейка, просто миллиметровка швейная.
Ширина одного болта 0.9 см. Как измерить точно ?
Сложить десять болтов. Их ширина будет ровно 9 см с точностью до миллиметра,
а не 10 см если мерять по одному.

Чо еще не понятно ?
Ну не складываются болты!!!!!!!
Так же как и пинги!!!!!!!!!!!

Чтож ты за тупица-то такая?

2 Модератор - прошу прощения, но он достал тупостью!!!!
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410708
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistEdd.Dragonпропущено...

1 пинг - это измерение. 1000 пингов - это 1000 измерений. Уже совсем мимо кассы начал придумывать.

Ты чо дурак ?

Возьми в цикл

Код: plaintext
1.
2.
3.
4.
5.
6.
int start = getTime();
for(int i=0; i<1000; i++)
   ping();
int end = getTime();

int result = (end-start)/1000;

Чо сложно для понимания до сих пор ?

Очень сложно, потому что это применимо, когда разброс этих пингов сравним с требуемой точностью измерения , т.е. когда мы можем сказать, что взяли для измерения 1000 одинаковых болтов. А ты взял 1000 совершенно разных болтов, так что ты измерил? Вес какого из болтов ты измерил с точностью 0.001 грамма? Вес среднего болта? Когда в твоем наборе, может быть, болта с таким весом и вовсе нет?

Если бы у тебя были 1000 идентичных пингов, вот тогда бы ты так и поступил. Например меряя уровеьн сигнала в кусе кабеля (без промежуточных устройств) и на аппаратном уровне, а не под управлением многозадачной ос через managed-среду.


P.S.: Дураками обзываются только дети и слабаки (короче, психологически не защищенные люди, исчерпавшие запас аргументов).
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410709
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему не складываются ?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410711
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistпропущено...


Ты чо дурак ?

Возьми в цикл

Код: plaintext
1.
2.
3.
4.
5.
6.
int start = getTime();
for(int i=0; i<1000; i++)
   ping();
int end = getTime();

int result = (end-start)/1000;

Чо сложно для понимания до сих пор ?

Очень сложно, потому что это применимо, когда разброс этих пингов сравним с требуемой точностью измерения , т.е. когда мы можем сказать, что взяли для измерения 1000 одинаковых болтов. А ты взял 1000 совершенно разных болтов, так что ты измерил? Вес какого из болтов ты измерил с точностью 0.001 грамма? Вес среднего болта? Когда в твоем наборе, может быть, болта с таким весом и вовсе нет?

Если бы у тебя были 1000 идентичных пингов, вот тогда бы ты так и поступил. Например меряя уровеьн сигнала в кусе кабеля (без промежуточных устройств) и на аппаратном уровне, а не под управлением многозадачной ос через managed-среду.


P.S.: Дураками обзываются только дети и слабаки (короче, психологически не защищенные люди, исчерпавшие запас аргументов).

Если у вас один пинг 10 микросекунд допустим , а второй 15 микросекунд, третий 8 микросекунд то понятно что мерять до наносекунд там просто нечего и незачем. Но автор спрашивал какие есть средства ОСи для получения точности в наносекунды. Ему и ответил, что проблем нет на существующих линейках промерять до требуемой точности.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410714
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЕсли у вас один пинг 10 микросекунд допустим , а второй 15 микросекунд, третий 8 микросекунд то понятно что мерять до наносекунд там просто нечего и незачем. Но автор спрашивал какие есть средства ОСи для получения точности в наносекунды. Ему и ответил, что проблем нет на существующих линейках промерять до требуемой точности.
А, так ты видите ли рассуждал о сферическом пинге в вакууме!
Ну круто конечно.

А ничего, что я вроде на слова не скупился и изначально пытался обратить твое внимание на то, что пинги (точнее их разброс) имеют уровень миллисекунд (не локалку же меряем), т.е. в 1 000 000 раз больше требуемой точности.

А так же показывал, что пустой замер
Код: plaintext
1.
2.
int start = getTime();
int end = getTime();

дает end-start порядка микросекунд, т.е. в 1 000 раз больше требуемой точности.

Но тебя ж изначально это не смутило ))))
А потом я еще и дурак.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410717
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я напомню что автор спрашивал

Testor1Всем привет!

Пожалуйста, поделитесь ссылкой или готовым c# class-ом для замера продолжительности события в наносекундах.

Если у вас разброс измерений в микросекунды, то чего вы здесь четвертую страницу вообще обсуждаете ?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410718
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragonдает end-start порядка микросекунд
При разрешении таймера ~0.25 микросекунды результат у меня вышел 8 тиков этого таймера. Даже если у него будет в 10 раз быстрее - этого мало.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410719
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЯ напомню что автор спрашивал

Testor1Всем привет!

Пожалуйста, поделитесь ссылкой или готовым c# class-ом для замера продолжительности события в наносекундах.

Если у вас разброс измерений в микросекунды, то чего вы здесь четвертую страницу вообще обсуждаете ?
Спасибо, что напомнил, предыдущее мое сообщение касается как раз C#, а может даже винды в целом.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410720
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И автор то спрашивал, а ты ведь все-таки пинги складывал, а не абстрактные события. Какие тогда пинги, если автор не спрашивал о них?
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410721
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще если такой разброс пингов то тем более нужно делать тысячу измерений по тому шаблону который я показал.
Тогда можно вычислить некоторое среднее значение которое будет наиболее достоверным в существующих условиях.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410722
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если б ты написал, что мол знаешь способ повысить точность измерения одинаково длящихся событий, то никто бы и не возразил.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410723
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче нужна апроксимация ряда.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410725
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonЕсли б ты написал, что мол знаешь способ повысить точность измерения одинаково длящихся событий, то никто бы и не возразил.

Если в стакане есть зернышки которые весят в два раза больше чем другие зернышки, то всеравно нужно взвешивать все вместе и делить на количество и получать более менее точный вес одного зернышка.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410726
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistНо вообще если такой разброс пингов то тем более нужно делать тысячу измерений по тому шаблону который я показал.
Тогда можно вычислить некоторое среднее значение которое будет наиболее достоверным в существующих условиях.
Делать надо как можно больше. Но цель не сколько среднее, сколько минимальное взятью. Т.е. такое, при котором было наименьшее влияние нагрузок и прочих протормозок.

Только все-равно ему это не поможет вычислить расстояние между двумя ADSL модемами (АТС и клиент), т.к. они не соединены напрямую сплошным куском кабеля.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410729
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут в качестве КЭПа от Метрологии.
Если у вас нет предмета измерений то чо вы в этом топике до сих пор делаете.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410734
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЯ тут в качестве КЭПа от Метрологии.
Если у вас нет предмета измерений то чо вы в этом топике до сих пор делаете.
Выясням, действительно ли у нас нет предмета измерения!
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410768
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistЯ тут в качестве КЭПа от Метрологии.
Если у вас нет предмета измерений то чо вы в этом топике до сих пор делаете.
Выясням, действительно ли у нас нет предмета измерения!

Я понял.
Ну копайте, там иНоз писал про обрывы, у электриков точно есть
http://www.technokabel.com.ua/st_technokabel/nva_new/catalogue/Reflektor_RP-109.html
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410878
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Топик превращается в завалинку юмориста?:)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37410897
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
народ, заканчивайте с "тупицами".
обсуждайте в рамках дружественной и непринужденной атмосферы :)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37411013
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistEdd.DragonЕсли б ты написал, что мол знаешь способ повысить точность измерения одинаково длящихся событий, то никто бы и не возразил.

Если в стакане есть зернышки которые весят в два раза больше чем другие зернышки, то всеравно нужно взвешивать все вместе и делить на количество и получать более менее точный вес одного зернышка.

Зависит от модели распределения, Кэп. Смотри:

У нас имеются:

1. 10 Коров
2. 2 Барана
3. 7 Кенгуру
4. 1 Одноногий пастух - инвалид

Спрашивается, какое среднее количество ног у представителей этого стада??? ;o)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37412433
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist можно вычислить некоторое среднее значение которое будет наиболее достоверным в существующих условиях.Молодец, ты уже умеешь вычислять средние значения. Теперь прочитай про "дисперсию", "среднеквадратическое отклонение" и другие параметры в статистике.
Например: 4.2.1. Повышение точности путем усреднения результатов измерений
парочка предложений оттуда, совсем немного, для легкости восприятия:
авторСлучайная составляющая погрешности может быть снижена путем усреднения результатов многократных измерений. Если в составе погрешности преобладает систематическая компонента, то усреднение не приводит к повышению точности.авторИтак, усреднение некоррелированных измерений (см. (3.2)) позволяет уменьшить погрешность результата в sqrt(N) раз. ( пока что ты прав, но читай дальше ) Однако это утверждение справедливо при соблюдении нескольких условий, выполнимость которых довольно трудно проверить на практике.
Во-первых, усреднение дает эффект только для случайной составляющей погрешности. Погрешность измерений перестает уменьшаться, когда становится настолько малой, что суммарная погрешность определяется систематической составляющей. Систематическая погрешность складывается из нелинейности АЦП и операционных усилителей, температурной зависимости напряжения смещения нуля и коэффициента передачи измерительного канала (температурно-зависимые погрешности учитываются как дополнительные), низкочастотных шумов, у которых время автокорреляции больше времени выполнения серии повторных измерений (к ним относится, в частности, "старение" элементов), динамической погрешности .( здесь можно подставить описание "твоего" инструмента измерения ) Практически редко удается снизить общую погрешность измерений более чем в 2...3 раза с помощью усреднения.



BazistЯ напомню что автор спрашивал
Testor1Пожалуйста, поделитесь ссылкой или готовым c# class-ом для замера продолжительности события в наносекундах.
Вы клоны? Немного похож стиль, и степень незнания, ;) хотя Testor1 говорит "привет" и "пожалуйста", что для Базиста нетипично ;)
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37412874
Testor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S.G.,

Почему все зациклились на средней величине?
Ведь понятно, что для решение задачи она не подходит.
Нужно использовать минимально зафиксированную величину в час наименьшей нагрузки канала. То есть в 3-5 часов ночи :)

понять как работает ICMP - это тема.
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37413008
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1Почему все зациклились на средней величине?
Ведь понятно, что для решение задачи она не подходит.

Видите ли, коллега, не всем понятно
...
Рейтинг: 0 / 0
c# class для замера продолжительность события в наносекундах
    #37413036
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Testor1, топик живёт своей жизнью. Это нормально.
...
Рейтинг: 0 / 0
106 сообщений из 106, показаны все 5 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / c# class для замера продолжительность события в наносекундах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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