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

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

Комментарии
13.01.2005 в 12:58

Продолжаем развлекаться здесь... :lol:
13.01.2005 в 13:55

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



а если это игра на бесконечно поле? то я не удивлюсь Ж)

PS: а ещё в требованиях надо указать : "железные нервы для игрока" ;)
13.01.2005 в 14:00

хорошие грабли со временем не тупятся
BrerRabbit :)

в любом случае, преднамеренное грубое завышение системных требований только из-за собственной лени (или незнания) - это серьезная проблема
13.01.2005 в 14:03

BrerRabbit, бесконечная игра на бесконечном поле потребует бесконечно быструю систему =)
13.01.2005 в 14:15

бесконечная игра на бесконечном поле потребует бесконечно быструю систему =)

т.к. на любом шаге у нас занята конечная область, т.о. и производительность нужна конечная (вот только насколько конечная Ж) )

вот только если в неё будут играть очень долго несколько поколений... но это уже (пии..)

13.01.2005 в 14:22

а кто сказал, что в игру на бесконесном поле одновременно будут играть всего два человека? ;)
13.01.2005 в 16:51

К сожалению, бывают случаи, когда сама среда разработки более похожа на танк. Есть вещи, которых ты избежать можешь оптимизацией кода. А есть случаи, когда писец. Условно говоря, надо отослать на сокет пакет. В обычном никсовом C это делается одной процедурой. В C# я вынужден для этого заводить объект TCPClient, который чёрт знает сколько памяти под себя выделит, даже с учётом того, что мне от него надо не так много. И ещё мне вот очень хотелось бы провести какой-нить здоровый тест, сравнив скорость работы трёх совершенно одинаковых по функциональности страничек, но написанных на php, asp и asp.net. Потому что сильно нехорошие подозрения у меня про asp.net...



Но вообще согласен, что некоторые вещи, люди, да и я в том числе, иногда делать ленятся... не всегда делается "красиво", когда можно на тракторе проехать...
13.01.2005 в 23:40

Fixed.
Ну, есть люди, которые оптимизируют код (графический движок) на всё возможное, от простейшего FPU через AMD 3DNOW! до SSE3. И первая команда движка - cpuid. Получается дикая помесь Си с Ассемблером, отлаживать или же, не дай Бог, переписывать которую может только сам автор. :)



Можно ещё бесконечно долго переписывать "тормозной" класс строк и заменить "тормозной" malloc() чем-нить ещё.

Только это... мягко говоря, медленновато :)

Оптимизировать мне-то не лень, но не до такой же степени...
14.01.2005 в 15:12

Dimmy

Получается дикая помесь Си с Ассемблером, отлаживать или же, не дай Бог, переписывать которую может только сам автор.

Ну это смотря как писать =)
17.01.2005 в 02:46

2 Dimmy Вот такие люди и написали движок для Ку2 и Унреала!

Сколько лет прошло, а эти движки все еще живы и, мало того, новые игрухи писаные на них, летают на моей старенькой машинке :))))

А прога написанная на асме отлаживается ничуть не трудней чем прога писанная на С (а иной раз даже легче!!!), если конечно автор проги не ставил себе цель запутать код (или образ мысли у него извратский, как у меня :))))

Вот потрошил я недавно чужие демки (даже без исходников, чистый дизасм) и ничего, вполне все понятно. Вот только автор ИЗВРАЩЕНЕЦ!!! Я когда просек (в принципе не долго разбирался) как оно работает в шоке ходил пол дня!!! :)))) Я бы хрен до ТАКОГО додумался :)

0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning

З.Ы .

Найдите в сети демку Mesha.com (4кб!!!) посмотрите. Только предварительно сядте понадежней или ухватитесь за чтоньть :) Как такое в 4 кб запихнуть!!! После чего проги весом в 1 мб кажутся динозаврами какими то :)
17.01.2005 в 02:51

http://neptunix.narod.ru/intros.htm

вот тут есть эта Mesha Рулез Блин!!!
17.01.2005 в 23:02

Fixed.
Гость

Усё, пошёл говорить знакомому, что он - Кармак. :)



Но надо учитывать тот факт, что ассемблерщиков всё-таки очень мало, а значит, мало и желающих поотлаживать.



Да-а... Демка классная, при размере 4Кб - нет слов.

Пытаюсь разобрать, что же там такое.



В принципе, код - самая маленькая часть работающей программы. Ибо данные намного больше.
17.01.2005 в 23:34

Dimmy

ассемблерщиков всё-таки очень мало

имею предубеждение, что если человек не знает ассемблера хотя бы IBM PC, то полноценным программистом его назвать нельзя. это похоже на знание слов, но незнание букв
18.01.2005 в 00:29

dermeister Имею подозрение, что очень мало автомобилистов уверенно опишут цикл Карно и разбираются в термодинамике, с использованием которой построен их двигатель внутреннего сгорания. А многие женщины-автомобилистки вообще знают в машине 4 детальки - руль и 3 педали. И ничего, слабая подкованность Шумахера в адиабатических участках цикла Карно не мешает ему неслабо водить тачку, а всем женщинам - водить аккуратнее и удачнее мужчин :)
18.01.2005 в 00:35

Tzota

Фигню сказал!

Ты не путай водил и инженеров которые этот автомобиль сделали!

Водиле и не надо знать всех деталей, а инженеру без этого никак!

0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning
18.01.2005 в 00:39

Dimmy

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



dermeister

Мало нас, мало...

... и это прискобно. Щас даже под Микроконтроллеры пытаюстя на Си++ писать! Извращенцы!

0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning
18.01.2005 в 00:39

Tzota

так я тоже не предлагаю копаться в полупроводниковых элементах ;)

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

>>и инженеров которые этот автомобиль сделали!



Я не строил архитектуру x86. И не вижу причин мне знать. То, что я знаю, нисколько не возвышает меня над другими. Все никсовые операционки и компиляторы многих языков программирования написаны на С. И его я знаю, но это не значит, что я буду писать на Delphi или Java лучше, чем человек, кто пять лет дрючил этот Java вдоль и поперек. Да, это может сделать честь, но в большинстве случаев как фундаментальное, но бесполезное знание. Уж как есть.
18.01.2005 в 00:41

dermeister Мнээ, мнэээ. Ну вот тут соглашусь. Хотя бы грамотное разбиение цикла - и то хлеб.
18.01.2005 в 00:49

Гость

Щас даже под Микроконтроллеры пытаюстя на Си++

довелось немного пощупать Keil под Infineon. довольно удобная вещь для реализации сложной математической задачи или громоздкой логической обработки. но для работы конкретно с железом, имхо, конкурентов ассемблеру нет
18.01.2005 в 00:49

Tzota Просто вы всегда писали без ограничений (памяти, быстродействия). А мне часто приходится запихивать в 4кб ПЗУ микроконтроллера прогу, котрая на С заимет килов 40-60. Да еще успевать за синхроимпульсами от датчиков.

А я соглашусь с dermeister, что знание low level позволяет оптимизировать прогу, даже не прибегая к ассемблеру. На уровне алгоритма.



0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning
18.01.2005 в 01:01

Нну, насчёт быстродействия - был трабл, но насчёт памяти - конечно да, такого мне лично не доводилось. Чтобы что-то запихивать в ПЗУ микроконтроллера.
18.01.2005 в 01:09

Tzota

к слову, быстродействие зависит и от объема используемой памяти
18.01.2005 в 01:13

dermeister

Ага, золотой закон программирования :) Выирывая в быстродействии теряем в памяти.



Гы, согласно ему софт от микрософта должен летать с космической скоростью на 66Мгц :)))))))))))))))))



Но видать они не программисты и на них этот закон не действут :))))

0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning
18.01.2005 в 01:23

Мнэээ, я что, заблуждаюсь, что в прикладном гораздо чаще приходится оптимизировать программы под более слабый проц, чем под ощутимо меньшее дисковое пространство? Парк машин бывает просто волшебно разный, и очень ценно, что прога пойдёт и под тачкой в 2,3 ГГц, и под тачкой в 133 МГц. Вот чтобы это было - это ощутимо. А то, что при этом она займёт 11 или 12 мб - вот это вряд ли оценят. Пусть лучше на 1 МБ больше, чем требование "не ниже 2 ГГц".



Вопросов с 4 кб наличной памяти я не касаюсь. Это сооовсем другая песня.
18.01.2005 в 01:33

хорошие грабли со временем не тупятся
Tzota

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

А то, что при этом она займёт 11 или 12 мб - вот это вряд ли оценят. Пусть лучше на 1 МБ больше, чем требование "не ниже 2 ГГц".

эээ. А то, что при этом она будет работать на 2.5GHz или 2.6GHz - вот это вряд ли оценят. Пусть лучше на 0.1GHz больше, чем требование "не меньше 1Gb оперативки". :-D

на мой взгляд, слишком маргинальное суждение
18.01.2005 в 01:41

the_fallen_angel Нну, если ты говорил за оперативку, то мы говорили про разные вещи. Ясный красный, что правило рычага ещё никто нигде не отменял. Вопрос в том, что в данной ситуации критичнее. И в том, какие приложения и на чём ты пишешь. Если ты пишешь ПО для калькулятора - тут тебе все карты в руки. Ассеблер, ограничения по всем видам памяти и т.п. Но на асме писать огромное приложение для делопроизводства ты же станешь, так? Ты будешь втиснут в рамки высокоуровневого языка. А там от тебя зависит не так уж и много. Даже один и тот же код на plain С++, если его компильнуть на разных компиляторах, может значительно различаться как в весе, так и в быстродействии.
18.01.2005 в 01:52

Tzota



Но на асме писать огромное приложение для делопроизводства ты же станешь, так?

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



Ты будешь втиснут в рамки высокоуровневого языка. А там от тебя зависит не так уж и много

позволю себе категорически не согласиться. разработка алгоритма с четким осознанием того, во что он в конечном итоге превратится может значительно повысить его быстродействие. оптимизирующие компиляторы еще не настолько развиты, что бы сглаживать все недоработки программиста. исключением являются, пожалуй, приложение наподобие "hello world" ;-)
18.01.2005 в 01:58

Tzota

Вот и я про то же! Везде нужен свой инструмент :) Но в той же большой проге навернякая есть критические участки которые можно и нужно! переписать на более низком уровне.

0 0000 ORG 0000h

1 0000 F3 DI

2 0001 76 HALT

Assembly complete

0 Errors

1 Warning
18.01.2005 в 02:11

dermeister Ага, ага. И в то же время они иногда недостаточно развиты, чтобы оценить твой какой-то особенно тонкий ход. Потому что танк.



Гость Вот тут возразить нечего. Вottleneck'и есть всегда. И иногда температуру участка можно реально сбить.