icq

...
  • Если где-то нужно использовать :mmx,sse,3dNOW ,то без ассемблера тут не обойтись.
    Или если необходимо оптимизировать код по скорости,то нужно снова использовать ассемблер.

    C можно использовать только для организации логики программы,а скоростные части нужно писать на Ассемблере.
    Если программа не критична к скорости,то можно её писать и на C(как миранду).
  • Идея портирования ICQ в meos у меня витала уже давно, но я не знаю как работать с сетью(( На тему создания клона аськи нашел несколько тем, в том числе "ICQ2000 сделай сам" на Delphi.... Если кого заинтерисует, то они лежат тут:
    http://delphiworld.narod.ru/base/icq2000_1.html - http://delphiworld.narod.ru/base/icq2000_10.html

    В них разобраны пакеты аси
  • andrew_programmer
    Хорошие компиляторы Си делаю очень хорошо оптимизированный код. MSVC оптимизирует mmx и sse лучше чем получается вручную. Я это выяснил когда компилировал библиотеку fftw.
    А время разработки на Си на много меньше.
  • Незнаю как MSVC,но GCC действительно выдаёт хорошо оптимизированный код(в большинстве случаев).Но это GCC,а не простенький metcc,который не производит даже элементарной оптимизации типа:

    mov ecx,0

    а правильнее и быстрее будет
    xor ecx,ecx
    (и дело совсем не в флагах).

    И еще одно ВАЖНЕЙШЕЕ замечание.

    Когда алгоритм пишет человек,то он использует все регистры.А как изестно регистровая память самая быстрая.Компилятор C хоть и подменяет некоторые переменные регистрами,но он не использует все регистры и не может организовать использование регистров самым оптимальным образом(это под силу только человеку).
    В этом я убедился,когда сравнил скорость рисования геометрических примитивов в C и скорость рисования ЭТИМ ЖЕ алгоритмом,но после МАКСИМАЛЬНОЙ оптимизации на ассемблере(подмена переменных регистрами).

    Если бы компиляторы C выдавали такой же быстрый код,как и код написанный профессиональным ассемблерщиком,то неимелобы смысла создавать Колибри - ведь есть Линукс.


    А что касается разработки,так для меня не составляет оссобой трудности думать на ассемблере.Да и разрабатывю я на нём довольно быстро.

    P.S.
    Я согласен,что ИНОГДА код,выдаваемый сишным компилятором очень оптимален,но это бывает только иногда.
    А в Ассемблере - ВСЕГДА(если пишет опытный ассемблерщик).
    Да и мусора в ассемблерном коде нет.

    Это не пустое утверждение.Сравните скорость работы Колибри со скорость ОС написанных на С и поймётё,что я прав.
  • Если бы компиляторы C выдавали такой же быстрый код,как и код написанный профессиональным ассемблерщиком,то неимелобы смысла создавать Колибри - ведь есть Линукс.
    Мечты, мечты.. Иногда они сбываются ;)
    Компилятор C хоть и подменяет некоторые переменные регистрами,но он не использует все регистры и не может организовать использование регистров самым оптимальным образом(это под силу только человеку).
    Интересно было бы попробовать оптимизацию такого рода сообразить :)
    Для таких целей вроде и есть асм вставки

    Да, и MSVC имхо компактнее код даёт.
  • andrew_programmer
    В этом я убедился,когда сравнил скорость рисования геометрических примитивов в C и скорость рисования ЭТИМ ЖЕ алгоритмом,но после МАКСИМАЛЬНОЙ оптимизации на ассемблере(подмена переменных регистрами).
    Конечно качество оптимизации зависит от алгоритма и от того как он реализован. Часто небольшие участки кода человек может написать лучше, но не всегда. В плеере есть функция test_wave() разбирающая заголовок wav файла и переводящая его в константу PCM_каналы_разрядность_частота. asm версия содержала кучу ветвлений. В Си версии компилятор сумел заменить часть ветвлений логическими и арифметическими операциями, я не разбирал детально как она теперь работает, но она работает быстрее. Если бы она вызывалась в цикле миллион раз разница была бы весьма заметна.
    Если говорить об оптимизации ещё, то в коммерческом программировании важнее время разработки программы, возможность портирования и модифицирования кода, чем скорость его работы. Тот же mp3 плеер я сделал за три дня от поисков подходящего декодера до первого проигранного файла. Ещё три дня я исправлял странную ошибку. Всего разработка заняла меньше недели. Win прототип заработал через два часа. Asm плеер собирались сделать ещё год назад и наверное делают до сих пор. Отсутствие достаточного числа различных программ - главный тормоз в развитии системы.
    И ещё.
    Сравнивать Колибри с "тяжёлыми" системами некорректно. Многопользовательское многопроцессорное ядро с виртуальной памятью, и кучей сервисов не помещается на дискету. Стоило бы сравнить с QNX демо дискетой, к сожалению они её убрали.
  • Если желаете портировать аську, то я думаю лучше начать с CenterICQ http://thekonst.net/centericq, особенно первой версии, там минимум сорцов, что ускоряет их понимание.
    Описание протокола можно взять в пакете 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
  • Serial, эта прога обсуждалась раньше. Проблема в строке import winsock,\
    Прога заточена на использование виндового сетевого стека, а не нашего.
  • ЛЮДИ!!!!!!!!!!!
    ЗАЧЕМ???
    МЫ уходим от "ОКОН" icq создавалась для винды зачем нам копировать её+подключаться к её каналу???
    Мне кажеться что будет лучьше если мы запустим свою программу для обмена сообщениями!
    кто за?
  • Gagarin
    Эхэхэ... Тут кто-то уже говорил: "Флаг в руки".
  • ну ты же сам понимаешь что одному это не осилить
  • Who is online

    Users browsing this forum: No registered users and 2 guests