bambus
Если есть желание написать мессенджер, то лучше сразу писать на С. сэкономишь кучу времени. На асме лучше писать низкоуровневые функции, которые можно вставить в ядро.
icq
Если где-то нужно использовать :mmx,sse,3dNOW ,то без ассемблера тут не обойтись.
Или если необходимо оптимизировать код по скорости,то нужно снова использовать ассемблер.
C можно использовать только для организации логики программы,а скоростные части нужно писать на Ассемблере.
Если программа не критична к скорости,то можно её писать и на C(как миранду).
Или если необходимо оптимизировать код по скорости,то нужно снова использовать ассемблер.
C можно использовать только для организации логики программы,а скоростные части нужно писать на Ассемблере.
Если программа не критична к скорости,то можно её писать и на C(как миранду).
Идея портирования ICQ в meos у меня витала уже давно, но я не знаю как работать с сетью(( На тему создания клона аськи нашел несколько тем, в том числе "ICQ2000 сделай сам" на Delphi.... Если кого заинтерисует, то они лежат тут:
http://delphiworld.narod.ru/base/icq2000_1.html - http://delphiworld.narod.ru/base/icq2000_10.html
В них разобраны пакеты аси
http://delphiworld.narod.ru/base/icq2000_1.html - http://delphiworld.narod.ru/base/icq2000_10.html
В них разобраны пакеты аси
andrew_programmer
Хорошие компиляторы Си делаю очень хорошо оптимизированный код. MSVC оптимизирует mmx и sse лучше чем получается вручную. Я это выяснил когда компилировал библиотеку fftw.
А время разработки на Си на много меньше.
Хорошие компиляторы Си делаю очень хорошо оптимизированный код. MSVC оптимизирует mmx и sse лучше чем получается вручную. Я это выяснил когда компилировал библиотеку fftw.
А время разработки на Си на много меньше.
Незнаю как MSVC,но GCC действительно выдаёт хорошо оптимизированный код(в большинстве случаев).Но это GCC,а не простенький metcc,который не производит даже элементарной оптимизации типа:
mov ecx,0
а правильнее и быстрее будет
xor ecx,ecx
(и дело совсем не в флагах).
И еще одно ВАЖНЕЙШЕЕ замечание.
Когда алгоритм пишет человек,то он использует все регистры.А как изестно регистровая память самая быстрая.Компилятор C хоть и подменяет некоторые переменные регистрами,но он не использует все регистры и не может организовать использование регистров самым оптимальным образом(это под силу только человеку).
В этом я убедился,когда сравнил скорость рисования геометрических примитивов в C и скорость рисования ЭТИМ ЖЕ алгоритмом,но после МАКСИМАЛЬНОЙ оптимизации на ассемблере(подмена переменных регистрами).
Если бы компиляторы C выдавали такой же быстрый код,как и код написанный профессиональным ассемблерщиком,то неимелобы смысла создавать Колибри - ведь есть Линукс.
А что касается разработки,так для меня не составляет оссобой трудности думать на ассемблере.Да и разрабатывю я на нём довольно быстро.
P.S.
Я согласен,что ИНОГДА код,выдаваемый сишным компилятором очень оптимален,но это бывает только иногда.
А в Ассемблере - ВСЕГДА(если пишет опытный ассемблерщик).
Да и мусора в ассемблерном коде нет.
Это не пустое утверждение.Сравните скорость работы Колибри со скорость ОС написанных на С и поймётё,что я прав.
mov ecx,0
а правильнее и быстрее будет
xor ecx,ecx
(и дело совсем не в флагах).
И еще одно ВАЖНЕЙШЕЕ замечание.
Когда алгоритм пишет человек,то он использует все регистры.А как изестно регистровая память самая быстрая.Компилятор C хоть и подменяет некоторые переменные регистрами,но он не использует все регистры и не может организовать использование регистров самым оптимальным образом(это под силу только человеку).
В этом я убедился,когда сравнил скорость рисования геометрических примитивов в C и скорость рисования ЭТИМ ЖЕ алгоритмом,но после МАКСИМАЛЬНОЙ оптимизации на ассемблере(подмена переменных регистрами).
Если бы компиляторы C выдавали такой же быстрый код,как и код написанный профессиональным ассемблерщиком,то неимелобы смысла создавать Колибри - ведь есть Линукс.
А что касается разработки,так для меня не составляет оссобой трудности думать на ассемблере.Да и разрабатывю я на нём довольно быстро.
P.S.
Я согласен,что ИНОГДА код,выдаваемый сишным компилятором очень оптимален,но это бывает только иногда.
А в Ассемблере - ВСЕГДА(если пишет опытный ассемблерщик).
Да и мусора в ассемблерном коде нет.
Это не пустое утверждение.Сравните скорость работы Колибри со скорость ОС написанных на С и поймётё,что я прав.
Мечты, мечты.. Иногда они сбываютсяЕсли бы компиляторы C выдавали такой же быстрый код,как и код написанный профессиональным ассемблерщиком,то неимелобы смысла создавать Колибри - ведь есть Линукс.
Интересно было бы попробовать оптимизацию такого рода сообразитьКомпилятор C хоть и подменяет некоторые переменные регистрами,но он не использует все регистры и не может организовать использование регистров самым оптимальным образом(это под силу только человеку).
Для таких целей вроде и есть асм вставки
Да, и MSVC имхо компактнее код даёт.
andrew_programmer
Если говорить об оптимизации ещё, то в коммерческом программировании важнее время разработки программы, возможность портирования и модифицирования кода, чем скорость его работы. Тот же mp3 плеер я сделал за три дня от поисков подходящего декодера до первого проигранного файла. Ещё три дня я исправлял странную ошибку. Всего разработка заняла меньше недели. Win прототип заработал через два часа. Asm плеер собирались сделать ещё год назад и наверное делают до сих пор. Отсутствие достаточного числа различных программ - главный тормоз в развитии системы.
И ещё.
Сравнивать Колибри с "тяжёлыми" системами некорректно. Многопользовательское многопроцессорное ядро с виртуальной памятью, и кучей сервисов не помещается на дискету. Стоило бы сравнить с QNX демо дискетой, к сожалению они её убрали.
Конечно качество оптимизации зависит от алгоритма и от того как он реализован. Часто небольшие участки кода человек может написать лучше, но не всегда. В плеере есть функция test_wave() разбирающая заголовок wav файла и переводящая его в константу PCM_каналы_разрядность_частота. asm версия содержала кучу ветвлений. В Си версии компилятор сумел заменить часть ветвлений логическими и арифметическими операциями, я не разбирал детально как она теперь работает, но она работает быстрее. Если бы она вызывалась в цикле миллион раз разница была бы весьма заметна.В этом я убедился,когда сравнил скорость рисования геометрических примитивов в C и скорость рисования ЭТИМ ЖЕ алгоритмом,но после МАКСИМАЛЬНОЙ оптимизации на ассемблере(подмена переменных регистрами).
Если говорить об оптимизации ещё, то в коммерческом программировании важнее время разработки программы, возможность портирования и модифицирования кода, чем скорость его работы. Тот же mp3 плеер я сделал за три дня от поисков подходящего декодера до первого проигранного файла. Ещё три дня я исправлял странную ошибку. Всего разработка заняла меньше недели. Win прототип заработал через два часа. Asm плеер собирались сделать ещё год назад и наверное делают до сих пор. Отсутствие достаточного числа различных программ - главный тормоз в развитии системы.
И ещё.
Сравнивать Колибри с "тяжёлыми" системами некорректно. Многопользовательское многопроцессорное ядро с виртуальной памятью, и кучей сервисов не помещается на дискету. Стоило бы сравнить с QNX демо дискетой, к сожалению они её убрали.
Если желаете портировать аську, то я думаю лучше начать с CenterICQ http://thekonst.net/centericq, особенно первой версии, там минимум сорцов, что ускоряет их понимание.
Описание протокола можно взять в пакете micq или здесь : http://iam.gorodok.net/icq091.txt
По поводу компиляторов могу предложить Intel C Compliller, очень хорошая оптимизация, правда он платный...
Описание протокола можно взять в пакете micq или здесь : http://iam.gorodok.net/icq091.txt
По поводу компиляторов могу предложить Intel C Compliller, очень хорошая оптимизация, правда он платный...
Открою один секрет: Hex уже выходил в асю из колибри! За основу он взял ym из дистрибутива. Правда глючит это дело пока, да и сам Hex последний месяц пропал куда-то (заработался/заучился совсем).
Ребят, не парьтесь с протоколом аськи, все это уже сделано и делается... Главное что нужно сделать - jabber клиент, а с его протоколом можно выйти в другие(icq, msn, yahoo, mail agent)
FAIM - Flat Assembler Instant Messenger
Многие инстант мессанджинговые пейджеры-монстры меряются всем, включая эквиваленты человеческих репродуктивных органов. Цвет, свет, размер, окрас, прочие прелести - вс¸ это вложено в основу для гордости у любого icq-клиента. И быть может этот клиент и не составит даже на гинетическом уровне конкуренцию монстрам, зато он реально маленький (~30кб) и с открытыми искодниками на ассемблере.
Скачать сам клиент + исходники можно тут: http://roticv.rantx.com/faim/download.html
Многие инстант мессанджинговые пейджеры-монстры меряются всем, включая эквиваленты человеческих репродуктивных органов. Цвет, свет, размер, окрас, прочие прелести - вс¸ это вложено в основу для гордости у любого icq-клиента. И быть может этот клиент и не составит даже на гинетическом уровне конкуренцию монстрам, зато он реально маленький (~30кб) и с открытыми искодниками на ассемблере.
Скачать сам клиент + исходники можно тут: http://roticv.rantx.com/faim/download.html
Serial, эта прога обсуждалась раньше. Проблема в строке import winsock,\
Прога заточена на использование виндового сетевого стека, а не нашего.
Прога заточена на использование виндового сетевого стека, а не нашего.
ЛЮДИ!!!!!!!!!!!
ЗАЧЕМ???
МЫ уходим от "ОКОН" icq создавалась для винды зачем нам копировать её+подключаться к её каналу???
Мне кажеться что будет лучьше если мы запустим свою программу для обмена сообщениями!
кто за?
ЗАЧЕМ???
МЫ уходим от "ОКОН" icq создавалась для винды зачем нам копировать её+подключаться к её каналу???
Мне кажеться что будет лучьше если мы запустим свою программу для обмена сообщениями!
кто за?
Gagarin
Эхэхэ... Тут кто-то уже говорил: "Флаг в руки".
Эхэхэ... Тут кто-то уже говорил: "Флаг в руки".
ну ты же сам понимаешь что одному это не осилить
Who is online
Users browsing this forum: No registered users and 5 guests