All streams
Search
Write a publication
Pull to refresh
65
1.7
Вадим Румянцев @vadimr

Разработчик аппаратно-программных комплексов

Send message
А какая у него реальная разрешающая способность?
Получите приведённую к фиксированной частоте производительность, разумеется. То есть номинальные секунды.
Вы спорите ради флейма. Пока я не могу понять даже того, какой вообще смысл имеет приравнивание друг к другу времени исполнения пользовательского процесса в Linux, OS X и Windows, если у них совершенно разное разделение нагрузки между user- и kernel-space. Так что про кроссплатформенность здесь вообще лучше не вспоминать.
На 86400*n.

Вот я и говорю – проработка материала в статье на уровне сообразительного школьника. Конечно, есть определённое рациональное зерно в том, что все упомянутые функции действительно существуют и их при случае можно использовать. Но так вот бездумно приравнивать друг к другу в условной компиляции разные по своей сути методы получения времени – если и возможно, то, по крайней мере, это требует значительного количества методических комментариев.
А если у меня не только х86 или вообще не х86?

Тогда к чему проблематика Windows?

Собственно, счётчик в процессоре есть во многих архитектурах.

Могу лишь предположить, что общий оверхед будет равен ровно одному вызову функции (мы считаем от фиксации до фиксации, в начальном измерении после фиксации будет учтен «конец» функции, в конечном — будет учтено «начало» функции)


Так вот и хочется знать, в частности, чему равен этот вызов функции в микросекундах (учитывая, что он включает неизвестные нам действия внутри libc и ядра).

Ничего не происходит, читайте внимательнее код.


return (double)userSystemTime.wHour * 3600.0 +
(double)userSystemTime.wMinute * 60.0 +
(double)userSystemTime.wSecond +
(double)userSystemTime.wMilliseconds / 1000.0;


Что здесь произойдёт, когда процесс работает более 24 часов?
Надо заметить, что большинство этих соображений относится к любому способу измерения времени. Очень грамотная статья по делу, лучше б постер перевёл именно её :)
Лучшее решение предложили коллеги в предыдущем комментарии – использовать ассемблерную вставку с RDTSC и не париться (включая приведённую по ссылке статью с методическими рекомендациями Intel, как вообще правильно организовывать работу с таймером). А прежде, чем замахиваться на кроссплатформенность, автору лучше было бы для начала разобраться поглубже хотя бы с одной платформой.

Ещё навскидку темы, которые хотелось бы видеть освещёнными в подобной статье:

– оценка случайной и систематической составляющей погрешности измерения;

– как момент вызова функции и момент возврата из функции соотносятся с моментом фиксации показаний таймера (в том числе, чему равен оверхед от её собственной работы, как разность между этими значениями);

– что происходит, когда ОС в процессе бенчмаркинга синхронизирует время по NTP и начинает подводить таймеры;

– что происходит при переполнении коротких таймеров;

– там автор в коде зачем-то работает с минутами и часами, что вызывает очевидный вопрос, что происходит в его функции с переходом через полночь, и менее очевидный вопрос, что происходит с удлинёнными минутами по 61 секунде (чем дальше, тем они появляются чаще в связи с удлинением астрономических суток).
Если вы хотите просто прикинуть порядок величины на конкретной системе, тогда вообще неважно, что и как вы меряете, а заодно и вся рассмотренная переносимость вам не нужна.

В общем, на мой взгляд, такая важная и сложная тема, как измерение времени на компьютере, раскрыта автором оригинальной статьи весьма поверхностно.
А что Вы понимаете под “процессорным временем”?

Формально, термин “процессорное время” означает реальное время, занятое выполнением задачи на процессоре, то есть сумму предоставленных ей (или в её интересах) квантов времени.

Если Вы говорите о “процессорном времени” в смысле привязки к единицам тактовой частоты процессора вместо реальных секунд, то даже для бенчмаркинга это требует определённых оговорок, как и вообще всякие махинации с единицами измерения. Обычно, пользователя всё-таки интересует, какова производительность системы, приведённой к реальным единицам времени, а не с использованием удлинённых или укороченных секунд наугад взятого процессора с поехавшим тактовым генератором.

Конечно, если вы своим бенчмаркингом сравниваете два процесса на одном и том же процессоре (и даже одной и той же модели процессора), то это неважно. Но если вы хотите как-то распространить результат на другие системы, то единицы процентов, которые при известном стечении обстоятельств можно получить за счёт погрешности генератора, могут оказаться заслуживающими внимания.
Для целей бенчмаркинга это неважно, но, раз уж в заголовок статьи вынесен вопрос об измерении времени, было бы неплохо упомянуть, что тактовые частоты процессора и таймеров в обычном компьютере сами по себе испытывают определённые отклонения от паспортных значений. Поэтому, если вы хотите измерить реальное физическое время, то необходимо как-то привязываться к внешнему источнику синхронизации (калиброванному генератору частоты или интернетовскому / спутниковому источнику единого времени).

В общем, статья скорее освещает тему “как написать переносимый враппер над функциями библиотеки Си для получения времени”, чем “как измерять время”.
Для Intel-совместимых процессоров, и если обеспечить работу процесса без перекидывания с одного процессора на другой, RDTSC является самым правильным методом.
Исходя из вышесказанного, я предполагаю, что внутри PPC-5150, учитывая плотность его компоновки, просто жарко, что влияет на все его компоненты. Хотя он номинирован на температуру до +60˙C, а эксплуатируется в обитаемых помещениях, где вряд ли когда бывает больше +30˙C. С другой стороны, никто ведь и не обещал для него 10 лет успешной работы.
Никто с небес вообще не запрещает вести праведную жизнь :)
Выходили из строя различные части PPC-5150, практически не повторяясь (в данный момент нет при себе точных материалов, но навскидку помню: стабилизатор напряжения на материнской плате, жёсткий диск, разъём жёсткого диска (разболтался, несмотря на то, что был залит герметиком – может, уронили компьютер?), DVD-драйв, неустановленный дефект материнской платы. В первые месяцы проявилась ошибка в оперативной памяти одного из компьютеров. Элементы питания на материнских платах заменялись штатным образом. Повторяемости отказов не было ни разу, ЗИП тоже из строя не выходил. Один компьютер (с полностью отказавшей материнской платой) целиком заменили года три назад на новую модель PPC-5150, она пока из строя не вышла. В остальном заменяли на аналогичные комплектующие. Частота отказов, начиная со второго года, практически постоянна.
На мой взгляд, намешано всё в одну кучу.

Менеджмент – это искусство компромисса между возможностями трудового коллектива и требованиями бизнеса. К достижению этого компромисса можно двигаться с разных сторон, и тут дело зависит от индивидуальных качеств руководителя, а не от того, каким именно путём он к этому пришёл. Хотя, конечно, наличие технического образования неплохо сказывается на руководстве инженерным предприятием. Но мне встречались абсолютные приспособленцы, разваливающие всё, имеющие профильное образование и степень к.т.н., также как и классные руководители, что называется, “от сохи”.

Разумеется, проблема вненациональна. И вряд ли проблемы регистрации юридических лиц имеют вообще какое-то влияние на жизнь программиста с горящим взглядом.
Ну, это вообще естественное направление прогресса. 30 лет назад значительная часть программистского сообщества считала недокомпьютерами всё, что потребляет меньше ста киловатт, а в одной из имеющихся у меня книг начала 1980-х годов Unix названа “системой для домохозяек” (буквальная цитата), так как не заставляет заботиться о расположении элементов языка управления заданиями в колонках виртуальной перфокарты. С годами всё упрощается.
Да много кто. Чертежи-то, собственно, хранятся и в бумажном виде. А вот, например, у современных астрономов весь их материал – это, по сути, электронные видеоролики.
Контроллер BMC, реализующий IPMI, может управляться снаружи более непосредственным способом, чем ipmitool (например, через упомянутую веб-морду). Из статьи не очень понятно, зачем для описанной задачи к нему тянуться таким сложным путём, через умирающую систему.
Выбрасывать не обязательно, но мировой рынок PC сокращается с 2011 года.

Information

Rating
1,438-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Project Manager, Software Architect
Lead