• Какой оптимальный размер буфера?

    @4ainik
    Никита, Понятно :)
    Т.е. у вас получается измерение среднего времени выполнения операций чтения+записи.
    c94eb3cc3e6c4607a0a872d41f40a9b5.PNG
    Вот здесь как-то странно выглядит первый столбец (1кБ), по какой-то непонятной причине он показал лучше результат чем следующий (2кБ).
    16кБ вполне себе ожидаемо показал результаты гораздо лучше чем все предыдущие, а вот почему 16кБ опередил 32кБ и даже 64кБ - не совсем понятно. Вполне возможно, что здесь работают какие-то особые механизмы кеширования, возможно упреждающего чтения, но могут влиять другие факторы, например фрагментация диска, тип файловой системы, размер кластера и размер сектора (обычно он 512байт, но в некоторых больших дисках бывает 4кБ). Вполне ожидаемо снижение оверхеда программы по мере увеличения размера буфера, вообще интересно посмотреть на картину происходящего по мере дальнейшего увеличения размера буфера до 10МБ :)
  • Какой оптимальный размер буфера?

    @4ainik
    Никита, ээээ, тут есть несколько моментов.
    1) современные жесткие диски обладают большой скоростью чтения/записи в зависимости от модели диска и интерфейса он может выдавать данные со скоростью 100МБайт/сек и более
    2) современные ОС умеют очень хорошо кешировать данные в оперативной памяти, вполне себе могут закешировать весь файл целиком. Обычно это легко заметить при чтении файла, в первый раз он читается существенно дольше, последующих.

    Не знаю как вы проводили тесты, но тесты на файлах размером меньше 1Гб практически не представляют полезной информации.

    ЗЫ: График в данном случае показательнее цифр.
    ЗЫ2: Какой у вас жесткий диск? уж не SSD?
    ЗЫ3: Исходный код программы в студию :)
  • Почему люди уходят с фриланса в офис?

    @4ainik
    Алексей Скляров, все верно, можно например от метро до работы пройтись пешком, от метро до дома так же пешком. За это время вы не только проведете на улице, но и можете подумать над своими задачами/проектами....
  • Свои проекты vs Основная работа и как между ними не разорваться?

    @4ainik
    Если проекты доживут и будут приносить доход...
    А может они переживут и их создателя...
    Время покажет :)
  • Свои проекты vs Основная работа и как между ними не разорваться?

    @4ainik
    xfg, а что за проект? в сети еще есть?
    Чтобы поднять какой-то проект лучше искать единомышленников и профи в какой-то области, а так что я все сам знаю, все умею, все изучу, все сам сделаю - обычно не бывает.
    Да и в современном мире ИТ практически бесполезно именно "учить", т.к. набор знаний такой, что выучить все попросту невозможно, но получить базовые навыки и представление о какой-то конкретной технологии вполне можно и самое главное ее применять на практике, без этого голая теория вообще пустой звук.
  • Какой оптимальный размер буфера?

    @4ainik
    Никита, а какова тема диплома? И что за данные хранятся у вас в 10ГБ файлах?
  • Какой оптимальный размер буфера?

    @4ainik
    Еще раз, ТС спросил о размере БУФЕРА при ДИСКОВЫХ операциях и судя по тегам писать программу он будет на C#, что он дальше будет делать с этими данными он не уточнил и его это видимо не волнует.
    Переменные никуда не лезут :) И вообще не нужно путать понятия:
    буфер != переменная != память != регистр != ОЗУ, это все очень узкие понятия, сильно зависящие от контекста.
    есть случаи когда буфер != переменная, а есть буфер == переменная.
    есть случаи когда переменная != память, переменная == память или переменная == регистр.
    есть случаи когда регистр != ОЗУ и регистр == ОЗУ (процессора)
  • Как определить массу нагрузки на валу двигателя?

    @4ainik Автор вопроса
    d-stream, понятно что тут много всяких разных моментов, как то форма тела (игнорируем и абстрагируемся), его объем (тоже игнорируем и абстрагируемся), его расположение относительно оси вращения (плечо, оно все одно и тоже) и в некой зависимости оно будет представлено как некая составляющая общей константы (коэффициента). Замерять на нарастающем этапе нельзя, точнее можно, но результат будет еще хуже, т.к. в процессе вращения, как бы это не звучало, масса уменьшается :) Это не бред и не ересь и не физический парадокс, а особенность эксплуатации системы.
  • Какой оптимальный размер буфера?

    @4ainik
    Дмитрий Threy, беспредметный разговор... буфер это переменная, но очень большая, такая ни в какой "регистр" процессора НЕ влезет, разрядность регистра всего 32-64бита к слову :)

    char buf[512];
    while(!feof(in)){
    fread(in, buf, 512, 1);
    fwrite(out, buf, 512, 1);
    }

    Зачем мне здесь кэш L1 процессора? buf это переменная, которая находится либо стеке (а это ОЗУ), либо выделена из "кучи", что так же является ОЗУ...
    И в данном конкретном случае процессор даже не обращается к этой переменной, ну вообще ни как. Он лишь знает ее адрес (начальный адрес ОЗУ по которому расположен этот буфер) и только.
  • Какой оптимальный размер буфера?

    @4ainik
    Дмитрий Threy, разница очень даже большая, сколько будут эти данные там храниться и будут ли вообще они там храниться...
    Копирование файла это "работа" с данными? - да.
    А требуется ли в данном случае участие процессора? - не особо.
    Требуется кеш L1, L2? - да тоже вроде не особо...
    Вот у меня сейчас процессов 40+, потоков 700+, а ядро одно, что сейчас в кеше L1?
    Я верю что процессор работает быстрее с L1 чем с ОЗУ.
    Я так же верю, что данные обработаются быстрее если они попали в L1.
    Но вопрос в другом. Ключевые слова "дисковые операции", "оптимальный размер буфера" и "размер файлов 10Гб".
  • Какой оптимальный размер буфера?

    @4ainik
    Дмитрий Threy, мы можем читать данные с диска в одном потоке, писать в другом, обрабатывать в третьем, а еще параллельно работает ОС и куча других программ, что будет в кеше процессора? - Никому не известно...
  • Как более точно измерить сетевое напряжение аналоговым вольтметром?

    @4ainik Автор вопроса
    Да все верно, именно это я и имел ввиду, вольтметр с растянутой шкалой. Я знаю что существуют разные стабилитроны на разное напряжение, только проблема в том, что достать стабилитрон на 200В проблема. Но сейчас пришла в голову другая идея, тупо подключить этот агрегат к обычному понижающему трансформатору, через выпрямитель (без кондеров). Точность особая не нужна, будет достаточно, если стрелка будет отклоняться на некоторый угол при существенном (1-10вольт) изменении сетевого напряжения, что само по себе более информативно чем постоянно меняющиеся цифры на дисплее мультиметра.
  • Какой оптимальный размер буфера?

    @4ainik
    Перформанс чего? Дисковых операций или всей программы в целом?
    Давайте дождемся результатов тестов ТС и посмотрим на результирующий график?! ОК? Я думаю, что при размере буфера в 16к - 64к производительность будет примерно одинаковая.
  • Какой оптимальный размер буфера?

    @4ainik
    Дмитрий Threy, оптимальный размер буфера это сферический конь в вакууме, но в большинстве случаев лучше придерживаться диапазона 512 - 64к, кратного степени двойки. Не забывайте, что вы работаете с диском не напрямую, а через API ОС, а там куча посредников и своя логика работы...
    В любом случае чем больше буфер тем меньше оверхед, ну чисто математически:
    1) вызвать 1 раз fwrite(buf, 512, 1);
    2) вызвать 512 раз fwrite(buf, 1, 1);

    Очевидно второй вариант будет хуже в плане производительности, хотя и вполне уместен для например терминала :)

    А конкретно для условий описанных ТС, я бы выбрал максимальный размер буфера равный 64к.
  • Какой оптимальный размер буфера?

    @4ainik
    Дмитрий Threy, так это уже другой вопрос.... ТС спросил
    Какой оптимальный размер буфера? ... оптимального размера буфера для считывания файла и запись в файл?
    т.е. конкретно для операций чтения/записи в данном случае процессор не важен и почти не нужен.
    Как тут уже писали, факторов, влияющих на производильность дисковых операций довольно много, но размер буфера это как раз один из основных после производительности самого диска.
  • Какой оптимальный размер буфера?

    @4ainik
    d-stream, не понял что вы хотели сказать, немного перефразирую:
    в современных компьютерах, операции чтения/записи с диска/на диск, происходят без активного участия процессора, т.е. практически не расходуется процессорное время на данные операции и производительность процессора также практически не влияет на скорость этих операций, но тем не менее существует второй способ операций чтения/записи с активным участием процессорного времени, производительность его очень низкая и применяется он лишь в очень редких случаях.
  • Как внедрить готовый стартап в учебные учреждения?

    @4ainik
    Вот это одна из антимотиваций от внедрения новшевств.
    Программа для расписаний реально полезная, кто составля их в ручную или хотя бы задумывался над ее реализацией тот это понимает, но сейчас уже наверняка везде так или иначе она реализована. В ряде случаев это может быть абсолютно бесплатно, т.е. тупо дипломная или курсовая работа студента.
  • Как начать работу с микроконтроллерами с минимальными затратами?

    @4ainik
    не нужно путать людей! особенно начинающих! тут написано
    The Arduino language (based on Wiring) is implemented in C/C++, and therefore has some differences from the Processing language, which is based on Java.
    что в переводе означает: "отличия языка arduino от Processing", но и также, что "язык" ардуино реализован на Си++.
    По второй же ссылке приводятся ограничения компилятора для AVR и заметьте про Arduino там вообще НЕТ ни единого слова! Более того этот фак непонятно кем и когда был написан, (по крайней мере автоматически сгенерирован 3года назад), да я сильно сомневаюсь, что ТС сразу будет хреначить шаблонные классы...
    Не пугайте вы человека...
    Он новичок, и только учится...
    А то что кто-то придумал написать несколько функций и классов и назвать ЭТО новым языком Wiring, так это как минимум очковтирательство или попытка присвоить труды авторов создателей и разработчиков Си/Си++...
    Или вы будете утверждать, что всякий раз когда я пишу новую программу и создаю классы, то получается новый язык программирования???
    Но в целом идея и реализация arduino лично мне нравится, хотя и не нова, evalution boards были за долго до ее появления... Только это было на порядки сложнее и дороже...
  • Как определить массу нагрузки на валу двигателя?

    @4ainik Автор вопроса
    x67, в данном случае нету речи о подборе параметров ПИД, не ну нужно смешивать разные вопросы, а для определения массы, ПИД можно будет на время отключить. Двигатель коллекторный, управляется через отсечение части полуволны сетевого напряжения, т.е. детектор нуля + таймер с отсчетом когда подать питание, т.е. управляется не частотой импульсов (для симистора это не применимо), а моментом включения.