Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Misha Verbitsky ([info]tiphareth)
@ 2007-01-17 09:45:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение: sick
Музыка:Damo Suzuki - IN THE NIGHT
Entry tags:dos, igry, linux

dosbox последней версии
А между прочим, dosbox последней версии (0.65) поддерживает,
кажется, все вообще досовские игры, по крайней мере
те две игры, которые я доселе не мог запустить
(Master of Orion II и Conquest of the New World)
на новой версии досбокса прекрасно ходят. На Win XP,
что забавно, с немалыми проблемами, и их теперь
запускают только через досбокс.

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

Забавно.

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

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

Привет



(Читать комментарии) - (Добавить комментарий)


[info]mc6312.livejournal.com
2007-01-17 17:21 (ссылка)
Тормоза и прожорливость явовских и дотнетовских приложений общеизвестны.
И в обозримом будущем им быстрее нативных приложений не стать.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2007-01-17 18:08 (ссылка)
хуйня

ява действительно медленней, и быстрее ей не стать
а вот дотнет - пиздёж, я лично замеры делал
на простых вычислительных тестах не более 10% потерь производительности
по сравнению с нативным кодом, за остальным флеймом - на rsdn.ru

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mc6312.livejournal.com
2007-01-17 19:33 (ссылка)
Каким образом он будет быстрее, если все равно транслируется в нативный машинный код? В лучшем случае - догонит...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]joppux.livejournal.com
2007-01-17 19:52 (ссылка)
За счет анализа динамики выполнения кода, невозможного в случае статической генерации. Например, инлайнить наиболее часто вызывающиеся методы.

(Ответить) (Уровень выше)


[info]phantom
2007-01-17 19:54 (ссылка)
это правильный вопрос
объясняю

нативный код, генерящийся существующими компиляторами,
ориентирован на стандартную х86 архитектуру, то есть,
он по определению не может использовать специализированные инструкции,
типа SSE, MMX, 3DNow и т.д., иначе код не сможет запускаться на х86 железе,
не поддерживающим эти расширения

таким образом, нативный код без ассемблерных оптимизаций медленный, т.к.
компилятор не знает, на каком юзер будет запускать прогу, этот код - generic
наоборот, JIT (just in time)-compiler знает об архитектуре компьютера юзера всё,
и компилирует код на лету (или заранее - native images) в оптимизированный под
данный тип процессора, данный набор инструкций, код - идея ясна?

платформонезависимый ассемблер + правильный JIT-компилятор может уделать
нативный код, как деда внука

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mc6312.livejournal.com
2007-01-17 22:32 (ссылка)
нативный код, генерящийся существующими компиляторами,
ориентирован на стандартную х86 архитектуру, то есть,
он по определению не может использовать специализированные инструкции,
типа SSE, MMX, 3DNow и т.д.,


ЕМНИМС, интеловский сишный компилятор умеет как минимум SSE.

JIT (just in time)-compiler знает об архитектуре компьютера юзера всё,
и компилирует код на лету (или заранее - native images) в оптимизированный под данный тип процессора


В теории. На практике с этим как-то не очень весело, хотя сказки про шибко умные JIT-компиляторы я слышу уже лет 10 минимум.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2007-01-17 23:01 (ссылка)
>ЕМНИМС, интеловский сишный компилятор умеет как минимум SSE.

ну и что?
повторяю, ты будешь компилить под обобщённую х86 архитектуру,
а если ты будешь компилить под SSE, работать прога будет -
только под SSE

>про шибко умные JIT-компиляторы я слышу уже лет 10 минимум.

и что?
вот джава - старый джит-компилятор, работает медленно
джит от микрософта - более новый, работает быстро
сортировка массивов - 10% потери скорости от С++ максимум

потихоньку прогресс движется

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mc6312.livejournal.com
2007-01-18 09:31 (ссылка)
а если ты будешь компилить под SSE, работать прога будет -
только под SSE


И что? Может, мне еще беспокоиться об совместимости с оригинальным 386-м, х.з. когда снятым с производства?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2007-01-18 13:30 (ссылка)
> И что? Может, мне еще беспокоиться об совместимости с оригинальным 386-м, х.з. когда снятым с производства?

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

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

потому что у людей amd, pentium 3, и т.д.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mc6312.livejournal.com
2007-01-18 14:19 (ссылка)
ты что, надо мной издеваешься?
если ты компилишь в нативном компиляторе, он тебе по умолчанию выставляет максимальную совместимость

:))))
Про то, что компиляторы имеют настройки, ты не слышал?

даже хотя бы только под pentium 4,
никто твоей программой пользоваться не будет.
потому что у людей amd, pentium 3, и т.д.

Подразумевается, что люди используют только и исключительно уже скомпилированные программы?
Даже если так - почему автор программы не может предоставлять несколько бинарников (под разные процессоры, в данном случае - чистый 386, чистый пентиум, +SSE и т.п.)?
Зачем делать на машине каждого конечного пользователя то, что может быть сделано один раз?
Архитектур

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2007-01-18 14:26 (ссылка)
> Про то, что компиляторы имеют настройки, ты не слышал?

нет блядь, не слышал

> Даже если так - почему автор программы не может предоставлять несколько бинарников (под разные процессоры, в данном случае - чистый 386, чистый пентиум, +SSE и т.п.)?

эти бинарники генерирует автоматически джит-компилятор
и создаёт из них native images, улавливаешь мысль?

я не пойму, тебе что от меня надо?
1)попиздеть, 2)что-то узнать
или 3)задавить меня интеллектом?

зря пиздеть мне некогда

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mc6312.livejournal.com
2007-01-18 15:12 (ссылка)
эти бинарники генерирует автоматически джит-компилятор и создаёт из них native images, улавливаешь мысль?

Для тех, кто в танке: а нахрена это делает JIT-компилятор на машине каждого пользователя, когда это может сделать один раз "обычный" компилятор на машине программиста?

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

(Ответить) (Уровень выше)


[info]polter
2007-01-18 06:06 (ссылка)
В теории. На практике с этим как-то не очень весело, хотя сказки про шибко умные JIT-компиляторы я слышу уже лет 10 минимум.

Я не знаю что и где вы слышали, но где звон, определенно не знаете.
Даже Java уже в общем по скорости давно от нативного кода не сильно отличима.
А вот LLVMM, цитирую: The JIT compiler is capable of optimising unnecessary static branches out of a program at runtime, and is therefore useful for cases where a program has many options, most of which can easily determined unnecessary in any environment. Because of this, it is used in the OpenGL pipeline of Mac OS X 10.5 ("Leopard") to provide support for missing hardware features.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mc6312.livejournal.com
2007-01-18 09:28 (ссылка)
Даже Java уже в общем по скорости давно от нативного кода не сильно отличима.
Только жабьих приложений, которые не тормозили бы там, где нативные летают, я еще не видел.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]polter
2007-01-18 09:41 (ссылка)
Ну, видимо, вы видели мало приложений на Java
К тому же, "тормозили" и "летают" - это субъективные характеристики.

вот здесь все более-менее объективно: http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=all&lang=java&lang2=gpp
В среднем отставание от С++ не больше, чем в 1,5 раза

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]mc6312.livejournal.com
2007-01-18 14:20 (ссылка)
Хехе. Для какого-нибудь офисного пакета и 2 раза не катастрофа. А для графического редактора, или расчетной программы?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]polter
2007-01-18 14:38 (ссылка)
Вас по-моему куда-то не туда уже заносит. О чем речь вообще была - о JIT, а не о том для чего нужно и можно использовать Java.
А конкретно JIT используется для ускорения OpenGL в Mac OS X.

Аминь.

(Ответить) (Уровень выше)


[info]honeyman.livejournal.com
2007-01-17 22:41 (ссылка)
> нативный код, генерящийся существующими компиляторами,
> ориентирован на стандартную х86 архитектуру, то есть,
> он по определению не может использовать специализированные
> инструкции, типа SSE, MMX, 3DNow и т.д.,
> иначе код не сможет запускаться на х86 железе,
> не поддерживающим эти расширения

А писали существующие компиляторы исключительно студенты-недоучки, нифига не знающие про возможность runtime-определения возможностей процессора и вызова соответственно оптимизированных реализаций функций.
Об одном вас прошу - не говорите о невозможности использования специализированных инструкций моему компилятору GCC 4.1 (знаю, старьё). А то он при компиляции OGG-encoder-а с оптимизацией под мой процессор перестанет делать в два раза более производительный бинарник, чем при компиляции под i386.

> платформонезависимый ассемблер + правильный JIT-компилятор может уделать нативный код, как деда внука
Вам слова "emerge world" ни о чём случайно не говорят?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2007-01-17 23:18 (ссылка)
>> платформонезависимый ассемблер + правильный JIT-компилятор может уделать нативный код, как деда внука
> Вам слова "emerge world" ни о чём случайно не говорят?

я Линукса не знаю, но я его люблю

(Ответить) (Уровень выше)


(Читать комментарии) -