LINUX.ORG.RU
ФорумTalks

Почему новые версии ОС всегда будут «тормозить»


0

0

На интересную мысль наткнулся в книжке Седжвика по алгоритмам.

Допустим, у нас есть алгоритм квадратичной сложности. Новый компьютер будет выполнять его _дольше_ чем старый!

Подробнее. Основная идея такая: люди инстинктивно хотят, чтобы новый компьютер (в 10 раз более быстрый, чем старый) обрабатывал в 10 раз больше данных.

В случае использования в программе квадратичных алгоритмов, получим: количество операций на старом компе: (N^2) количество операций на новом компе:(10N)^2/10 = 10*(N^2)

То есть, время увеличилось в 10 раз, и новый компьютер тормозит гораздо больше!

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

★★★★☆
Ответ на: комментарий от Alex_A_V

> то не из-за обработки текста и его форматирования, а из-за рендеринга всего этого дела в графическое представление

Неправильно.

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

Остается только посчитать, где именно начинать рисовать строчку, где ее переносить, как обтекать разные сложные фигуры. Например, надо просто вывести абзац на экран, для этого надо пробежаться по всему тексту и сложить ширину глифов в словах, получить дерево с метками, где можно текст разрывать на строчки. Скажешь, что можно разрывать сразу, по мере прохода строк? А вот фиг тебе, надо еще согласовать размер с родительским контейнером, дабы тот утвердил его (актуально для таблиц и «справедливого» разделения столбцов).

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

И это только простой текст, без «выровнять по левому/правому краю», без «поставить на 30% между блоками А и Б, но не ближе 10 пикселей от них, при необходимости перенести в новый блок со своим оформлением».

simple_best_world_web_master
()
Ответ на: комментарий от stevejobs

>что, CP Pro 1.98 в семерке уже не тормозит и не мерцает? Запусти еще раз.

Может быть, но у меня обратный пример, MPC-HC у меня на буке тупил на нескольких фильмах в XP, а в семерке не тупит на том же буке...

Может быть тут проблема в CP Pro 1.98, железе, руках ?

vasya_pupkin ★★★★★
()

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

Love5an
()

Опэнсорс хорош тем, что все эти алгоритмы можно узнать и, если сильно хочется, оптимизировать.

Yareg ★★★
()

Мне кажется, что падение продуктивности софта связано с его «старением». Каждая программа (особенно коммерческая, где рефакторинг не выгоден экономически) обрастает костылями, мертвым кодом и прочим отстоем.

urxvt ★★★★★
()
Ответ на: комментарий от stevejobs

> компиз со всеми плагинами и Аэро с настройками по умолчанию заставляют задуматься даже очень неплохое железо

А чо, аэро таки тормознее дефолтного компиза?

pevzi ★★★★★
()
Ответ на: комментарий от pevzi

> А чо, аэро таки тормознее дефолтного компиза?

аэро на нормальном компьютере по-умолчанию имеет максимальные настройки

stevejobs ★★★★☆
() автор топика

> Соответственно, при переходе на новую версию наших любимых ОС нужно втыкать туда железа гораздо более, чем хочется - либо наслаждаться тормозами.

наших любимых ОС

извините, но я не использую Windows.
а мой любимый линукс и на 433-мегагерцном третьем пне с 128 мегабайт оперативки прекрасно работает (debian lenny, openbox, tint2, iDesk, conky, tilda + midori, audacious, openoffice.org-2, gajim.) оофис запускается 10сек, но работает нормально.

snoopcat ★★★★★
()
Ответ на: комментарий от stevejobs

Компиз со всеми плагинами работает на Asus EEEPC 1005 HA без тормозов. Спецификации посмотрите, если интересно.

И четверокеды тоже (я туда как-то сусь ради интереса ставил).

Hoodoo ★★★★★
()

Давно заметил, еще в школе, когда с windie98 на wind2k перешел, все игры начали медленнее работать. Но обратно не вернулся, т.к. достали постоянные падения ОС и ФС. Я среди школоты наверное первый на wind2k перешел.

Машинка была:

cel 466@581, 96Mb ram, geforce2 mx400, 15 gb HDD.

KPSS
()

Skorost komputera ocenivaut po skorosti vipolnenia im programm. Esli programma vipolnaetsa v 10 raz bistree, to i komputer v 10 raz bistree. Vse prosto.

Temo bolee est algoritmy ln(N)

dikiy ★★☆☆☆
()
Ответ на: комментарий от stevejobs

> приведи конкретный пример?

http://balancer.ru/tech/forum/2010/07/t70384--test-brauzerov-perekhod-po-vnut...

Здесь всё правильно: оно и должно тормозить много больше.


Не правильно, мне нафиг не сдались ни эффекты, ни дотнет. Мне кино надо посмотреть. А оно тормозит. Из-за ненужного функционала.

Manhunt ★★★★★
()

Не мог Седжвик написать такой чудовищный бред. Ты ничего не понимаешь в сложности алгоритмов

amomymous ★★★
()

>Почему новые версии ОС всегда будут «тормозить»
Потому как:
а) коли уж закон Мура работает, так что б не сэкономить время разработчика и написать на той же жабе?
б) некоторые еретики говорят, что stable API isn't nonsense, и тащат старые библиотеки для совместимости. Новые при этом усыхать не особо хотят;
в) Если в кране нет воды —
Значит, выпили жиды.
Если тормозит ядро —
Значит, жид писал его.

dogbert ★★★★★
()

-=:=-

Хм...а если поставить вопрос по другому?
Вдруг, внезапно, по магическому взмаху хацкеров-рубЫнГудофф у Вас появились исходники винды...ну..Хрюши там или ( >_< ) Семерки?

И чтобы Вы тогда сделали, чтобы вЫшеупомянутая винда не тормозила?

А что уж тут говорить про линукс? Исходники почти всего (от ведра до WM с плюшкам) в свободном доступе?

А все ли тукс-прогеры сидят на одинаковом железе? нет...
А на чем сидят кодеры некрософта? Ууу..тама видать фермы в 5Кват на одно рыло... (для билдоф)
Воопщем-то железо у каждого почти разное... Учитывать Все архитектуры, на которых 7ка будет работать..ххм..возможно ли это? Помнится мне пост про i686 x32 и x86_64 для x64...Не в этом ли проблема (зоопарк железа)

Воопще, Я это к тому, что если вы задаете вопрос «А почему новые версии ОС всегда будут \„тормозить\“» - подумайте, в Ваших ли силах это изменить? или хотя-бы донести сей вопрос до разрабов?
Ну, про некрософт ясно, пока тьма хомячков не искусает их, то и движуши не будет.
А вот линукс, хм...12309 яркий пример...хотя и боян в Вековую толщину.

Суммарно вывод: кладите на всех, изучайте и патчите, что можите...иначе, вопрос в сабже будет Вечен (покрайней мере до 2012).

}:-]

KosmiK ★★
()
Ответ на: комментарий от KPSS

-=:=-

как-то на работу от знакомых (с дачнаго массиву) принесли подобное чудо. Тама толи 2к стояла, толи чтото до нее..3.5 чтоли..

И что бы ты думаешь? - ОНО летает!!!!
Маркетинг, финансовая целесообразность (ака profit) и мм...соответствующая «квалификация» бОльшей части покупателей воопщем-то и привели нас к:
1) жЫрным шо пе...ц осям, ака Виста (ну Виста воопще насмешка на неразумными человеками);
2) Весьма производительному железу - ну разве не прелесть «Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz» на ноуте в сравнении с целкой 466 и.т.д.
Прям баланс добра и зла..и каждый раз побеждает бабло...}:-E ]

Так что:
- хавайте кагтус;
- ищите возможность повышения производительности (красноглаз-генту way);
- забейте на прогресс железа в пределах Вашей необходимости.

Самое интересное, что по всем направлениям - Орды последователей....>_<

KosmiK ★★
()

Компьютеры «тормозят» по двум причинам. Во-первых программы сейчас пишутся, используя намного более абстрактные подходы, чем 20 лет назад. Это даёт бОльшую надёжность, гораздо бОльшую скорость написания, но выливается в снижение производительности.

Во-вторых сейчас обрабатываются гораздо большие потоки данных, чем раньше. Раньше компьютер с трудом мог воспроизводить небольшое видео, требовалось специальное кодирование. Можно сравнить с моим стареньким айподом, он тоже показывает видео только в небольшом разрешении и в специальном формате. Сейчас реально процессором общего назначения декодироавть 1280x1024 видео. Это очень круто.

И в-третьих они сейчас работают гораздо быстрее. 95-я венда на P-133 грузилась минут 5. Всё ужасающе тормозило. 3 активные программы часто приводили к зависанию системы. Ворд запускался пару минут. Если сейчас опеноффис запускается больше 10 секунд, или убунта будет грузится больше 30 секунд, всё, криворукие программисты заполонили мир.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

>95-я венда на P-133 грузилась минут 5

быстрее она грузилась ) хотя если сильно замусоренная, то да,
хотя восприятие «тормознутость» в самом деле в то время было другое,
т.е. от компа не ожидалось что он будет работать быстро во многих случаях

ворд за пару минут.. это похоже что памяти мало было совсем )

3 активные программы часто приводили к зависанию системы.


да

насчет мультимедиа, кодирование в mp3 с битрейтом 128kbit занимало более получаса

Sylvia ★★★★★
()
Ответ на: комментарий от Legioner

>Ворд запускался пару минут.

Может проблема все-таки в нехватке оперативы и тормозных хардах?

FiXer ★★☆☆☆
()
Ответ на: комментарий от Legioner

>95-я венда на P-133 грузилась минут 5. Всё ужасающе тормозило. 3 активные программы часто приводили к зависанию системы. Ворд запускался пару минут.

На даче сейчас стоит такая машинка с 32 метрами памяти.
95-я грузится быстрее, чем семерка на i7 (от нажатия на кнопку до рабочего стола за 25 секунд), ничего не виснет, Word (95 - имхо, лучший; 97, 2000) - все грузится почти моментально ( до 10 секунд)

devl547 ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

>Рендеринг текста - это достаточно просто: обрабатываем изменения с последней отрисовки экрана, ищем сместившиеся блоки, перемещаем их через простое копирование видеопамяти (буферов битмапов), на что практически не тратим времени. Если блок изменился - подгружаем нужный стиль глифов (он по идее и так в памяти висит) и рисуем на заранее заданных координатах, опять же, простым копированием из битмапа в битмап. Это просто и достаточно быстро.

Ну я так подозреваю что сильно зависит от метода вывода на экран.

Остается только посчитать, где именно начинать рисовать строчку, где ее переносить, как обтекать разные сложные фигуры. Например, надо просто вывести абзац на экран, для этого надо пробежаться по всему тексту и сложить ширину глифов в словах, получить дерево с метками, где можно текст разрывать на строчки. Скажешь, что можно разрывать сразу, по мере прохода строк? А вот фиг тебе, надо еще согласовать размер с родительским контейнером, дабы тот утвердил его (актуально для таблиц и «справедливого» разделения столбцов).


Это элементарно, даже на VBA тормозить не будет.

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


Это элементарная задача, даже для какого нибудь VBA не говоря уже о Питоне, да даже и для какого нибудь пошлого Си.

Alex_A_V ★★
()
Ответ на: комментарий от simple_best_world_web_master

>И это только простой текст, без «выровнять по левому/правому краю», без «поставить на 30% между блоками А и Б, но не ближе 10 пикселей от них, при необходимости перенести в новый блок со своим оформлением».

Задача тоже элементарная, но опять же относится к рендерингу, а не к обработке текста.

Alex_A_V ★★
()
Ответ на: комментарий от Alex_A_V

> Это элементарно, даже на VBA тормозить не будет.

Во-первых, у меня java, которая всасывает на простом сложении массивов (оговорюсь, что затачиваю это для мобилок/говновеба), во-вторых, текста может быть слишком много, получается медленно (наверное потому, что коллизии с блоками я сделал криво, надо будет индексы прикрутить)

simple_best_world_web_master
()
Ответ на: комментарий от Alex_A_V

Возникает тогда вопрос, «а какого хрена тогда все браузеры тормозят?» - они тоже простые рендерилки текста

simple_best_world_web_master
()

Я конечно, не спорю, что квадратичный алгоритм обрабатывает 10N данных на вдесятеро более мощном железе в 10 раз дольше. Но откуда у хомячков задачи с квадратичной сложностью? Что, у нас фильмы и фотки смотрятся за O(размер^2)? Нет, это левая отмаза. Глупые ленивые программисты под руководством жадных менеджеров и бессоветных маркетологов намешивая фреймворки и слои абстракции.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

> Но откуда у хомячков задачи с квадратичной сложностью?

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от devl547

Ну у меня, если хорошо повспоминать про те компы, вспоминаются жуткие тормоза и зависания по 10 раз на день. Понятно, что тут больше кривущая венда тех времён виновата, чем железо, но как то не удивляли вылетания программ, зависания всей ОС. Может конечно памяти мало было или харды были медленные, я тогда в этом разбирался слабо и не помню, какие они были. Реакция на всякие действия была не мгновенная (т.е. в пределах 0.2 секунд), а часто в пределах секунды. Вообще у меня от всего этого в голове одно воспоминание - курсор в виде песочных часов, терпеливое ожидание, когда оно всё просчитает и надежда, что оно таки просчитает а не зависло в очередной раз. Сейчас я считаю, что фаерфокс тормозит, если после переключения вкладки он отрисовывает что-нибудь дольше полусекунды, или эклипс показывает автокомплит дольше секунды.

А вообще выход как бы не очень сложный. Я уверен, что реально написать драйверы для современного железа под 98-ю венду (или бекпортировать в какой-нибудь линукс 2.0), раскопать старые версии популярного тогда софта, и собрать себе этакую систему 90-х на современном железе. Вот только есть подозрение, что назад побежите, на убунту 10.4, плюясь и негодуя :)

Legioner ★★★★★
()
Ответ на: комментарий от Yareg

>Скорость часто оценивают по разнообразным циферкам в ценнике.

То есть компьютер, который в 10 раз быстрее, будет стоить около 10K$ ?

Компьютер за такие деньги действительно окажется в 10 раз быстрее (если нормально собрать этот кластер:) Так что ничего противоречивого :)

dikiy ★★☆☆☆
()
Ответ на: комментарий от Legioner

«Windows» - это слово из диалекта Апачей. В пеpеводе означает «Белый человек, глядящий чеpез стеклянный экpан на песочные часы.

(c)

Sylvia ★★★★★
()
Ответ на: комментарий от dikiy

Не только цена. но всякие гигагерцы, мегабайты, количество ядер.

Yareg ★★★
()
Ответ на: комментарий от stevejobs

компиз и прочие свистелки, которых раньше не было это одно. А вот почему ms office 97 года работал без тормозов на 90 MHz, а современные офисы требуют сильно больших ресурсов? Я не думаю, что объем данных, вводимых секретаршами сильно возрос.

cvs-255 ★★★★★
()
Ответ на: комментарий от Love5an

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

Какие такие новые возможности появились например офисных пакетах, что они требуют новое железо, хотя старые работают на старом железе?

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

> А вот почему ms office 97 года работал без тормозов на 90 MHz, а современные офисы требуют сильно больших ресурсов?

прочти статью «почему файлы Office такие сложные», ссылку давал на первой странице обсуждения. Там всё очень хорошо расписано.

Если коротко: office 97 - скомпилированные бинарные файлы с документами, прога с дикой оптимизацией. 2010 - OpenOffice-way, проклятый XML, тучи свистоперделок.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

> очень просто: потому что программисты не пишут алгоритмы логарифмической сложности, даже если и могут, потому что это потеря времени.

посмотреть видео, полазить вконтакте, написать в ворде - где тут квадратичная сложность?

cvs-255 ★★★★★
()
Ответ на: комментарий от stevejobs

> Если коротко: office 97 - скомпилированные бинарные файлы с документами, прога с дикой оптимизацией. 2010 - OpenOffice-way, проклятый XML, тучи свистоперделок.

Как и говорилось, лень оптимизировать. Пипл заплатит производителям железа и схавает.

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

> посмотреть видео, полазить вконтакте, написать в ворде - где тут квадратичная сложность?

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от cvs-255

> Как и говорилось, лень оптимизировать.

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

> пробежаться по тексту десятью вложенными циклами для каждой буквы

FAIL

замена бинарного формата файла на XML уже является самой большой анти-оптимизацией которую можно придумать


XML для хранения текстов вполне уместен. Так же, как уместен TEX. Получить из XML бинарное представление - совсем не долго и не сложно. Бинарное говно ничего не ускоряет, от него одни только проблемы.

Manhunt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.