steinkrauz - August 31st, 2011

> Recent Entries
> Archive
> Friends
> User Info

August 31st, 2011


12:46 am - Мелкоглюк
На днях, разбираясь с утилитой, обнаружил, что её очень тормозит вывод сообщений в консоль. Там в цикле (как оказалось потом, по 3.5Е6 элементам) на каждой итерации писалось "номер такой-то загружен" и возврат каретки. Не, я знал, что вывод в консоль тормозит, но не ожидал, что настолько.
Поначалу я грешил на добавленный в семёрке пятое колесо conhost.exe, позволяющий хомячкам натягивать свои уютненькие темки на консольное окно. Но, как показала практика, Колумб почти не виноват.
Чтобы не быть голословным, я смоделировал свою проблему, обвязал бенчмаркой и запустил разных средах.
Ну чо, под семёркой разница во времени исполнения между наличием и отсутствием вывода в консоль составила 300 раз.
Соответственно, под XP эта разница упала аж до 250 раз. То есть, похоже, несчастный conhost, таки добавляет тормозов в консоль, но на фоне двух порядков разницы эта добавка не так уж и важна.
Ну и контрольная проверка на линухе: разница составляет 3 (прописью: три) раза. Правда, на линухе стоит простенький WindowMaker, и для полноты правильности надо бы проверить на линуховой машине с няшненьким полупрозрачным терминальчиком.

А дальше я решил посмотреть, как поведут себя разные языки в разных средах.

OS
C
C++
C#
Win7
130
300 (23)
200 (0,67)
Win8
130
N/A
180 (0,86)
WinXP
170
250 (12)
150 (0,75)
Interix
4
10 (23)
200 (23)
Linux
3
3 (8)
110 (103)


Цифры в скобках — это отношение времени вывода в консоль на данном языке к выводу на С.
UPD:Цифры без скобок — это отношение времени выполнения с выводом в консоль к времени выполнения без вывода.
UPD2: Добавил данных по Win8 (15.09.11)

(5 comments | Leave a comment)

12:14 pm - В догонку
Распределение CPU по процессам во время работы cpp-тестов из предыдущего поста.



Uploaded with ImageShack.us

Первый conhost — от окна консоли Windows 7, второй — от окна Informix'а.

(Leave a comment)


Previous Day [Archive] Next Day

> Go to Top
LJ.Rossia.org