Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Nov 13, 2019 4:49 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 75 posts ]  Go to page Previous 1 2 3 4 5 Next
Author Message
 Post subject:
PostPosted: Wed Sep 27, 2006 4:06 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
bambus
Если есть желание написать мессенджер, то лучше сразу писать на С. сэкономишь кучу времени. На асме лучше писать низкоуровневые функции, которые можно вставить в ядро.


Top
   
 Post subject:
PostPosted: Wed Sep 27, 2006 4:18 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Если где-то нужно использовать :mmx,sse,3dNOW ,то без ассемблера тут не обойтись.
Или если необходимо оптимизировать код по скорости,то нужно снова использовать ассемблер.

C можно использовать только для организации логики программы,а скоростные части нужно писать на Ассемблере.
Если программа не критична к скорости,то можно её писать и на C(как миранду).


Top
   
 Post subject:
PostPosted: Wed Sep 27, 2006 4:52 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
Идея портирования ICQ в meos у меня витала уже давно, но я не знаю как работать с сетью(( На тему создания клона аськи нашел несколько тем, в том числе "ICQ2000 сделай сам" на Delphi.... Если кого заинтерисует, то они лежат тут:
http://delphiworld.narod.ru/base/icq2000_1.html - http://delphiworld.narod.ru/base/icq2000_10.html

В них разобраны пакеты аси


Top
   
 Post subject:
PostPosted: Wed Sep 27, 2006 7:11 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
andrew_programmer
Хорошие компиляторы Си делаю очень хорошо оптимизированный код. MSVC оптимизирует mmx и sse лучше чем получается вручную. Я это выяснил когда компилировал библиотеку fftw.
А время разработки на Си на много меньше.


Top
   
 Post subject:
PostPosted: Wed Sep 27, 2006 9:38 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Незнаю как MSVC,но GCC действительно выдаёт хорошо оптимизированный код(в большинстве случаев).Но это GCC,а не простенький metcc,который не производит даже элементарной оптимизации типа:

mov ecx,0

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

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

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

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


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

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

Это не пустое утверждение.Сравните скорость работы Колибри со скорость ОС написанных на С и поймётё,что я прав.


Top
   
 Post subject:
PostPosted: Wed Sep 27, 2006 10:33 pm 
Offline

Joined: Mon May 01, 2006 10:12 pm
Posts: 349
Quote:
Если бы компиляторы C выдавали такой же быстрый код,как и код написанный профессиональным ассемблерщиком,то неимелобы смысла создавать Колибри - ведь есть Линукс.

Мечты, мечты.. Иногда они сбываются ;)
Quote:
Компилятор C хоть и подменяет некоторые переменные регистрами,но он не использует все регистры и не может организовать использование регистров самым оптимальным образом(это под силу только человеку).

Интересно было бы попробовать оптимизацию такого рода сообразить :)
Для таких целей вроде и есть асм вставки

Да, и MSVC имхо компактнее код даёт.


Top
   
 Post subject:
PostPosted: Wed Sep 27, 2006 10:55 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
andrew_programmer
Quote:
В этом я убедился,когда сравнил скорость рисования геометрических примитивов в C и скорость рисования ЭТИМ ЖЕ алгоритмом,но после МАКСИМАЛЬНОЙ оптимизации на ассемблере(подмена переменных регистрами).
Конечно качество оптимизации зависит от алгоритма и от того как он реализован. Часто небольшие участки кода человек может написать лучше, но не всегда. В плеере есть функция test_wave() разбирающая заголовок wav файла и переводящая его в константу PCM_каналы_разрядность_частота. asm версия содержала кучу ветвлений. В Си версии компилятор сумел заменить часть ветвлений логическими и арифметическими операциями, я не разбирал детально как она теперь работает, но она работает быстрее. Если бы она вызывалась в цикле миллион раз разница была бы весьма заметна.
Если говорить об оптимизации ещё, то в коммерческом программировании важнее время разработки программы, возможность портирования и модифицирования кода, чем скорость его работы. Тот же mp3 плеер я сделал за три дня от поисков подходящего декодера до первого проигранного файла. Ещё три дня я исправлял странную ошибку. Всего разработка заняла меньше недели. Win прототип заработал через два часа. Asm плеер собирались сделать ещё год назад и наверное делают до сих пор. Отсутствие достаточного числа различных программ - главный тормоз в развитии системы.
И ещё.
Сравнивать Колибри с "тяжёлыми" системами некорректно. Многопользовательское многопроцессорное ядро с виртуальной памятью, и кучей сервисов не помещается на дискету. Стоило бы сравнить с QNX демо дискетой, к сожалению они её убрали.


Top
   
 Post subject:
PostPosted: Thu Sep 28, 2006 12:46 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Mar 20, 2006 10:44 am
Posts: 557
Если желаете портировать аську, то я думаю лучше начать с CenterICQ http://thekonst.net/centericq, особенно первой версии, там минимум сорцов, что ускоряет их понимание.
Описание протокола можно взять в пакете micq или здесь : http://iam.gorodok.net/icq091.txt
По поводу компиляторов могу предложить Intel C Compliller, очень хорошая оптимизация, правда он платный...


Top
   
 Post subject:
PostPosted: Thu Sep 28, 2006 3:17 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
Открою один секрет: Hex уже выходил в асю из колибри! За основу он взял ym из дистрибутива. Правда глючит это дело пока, да и сам Hex последний месяц пропал куда-то (заработался/заучился совсем).


Top
   
 Post subject:
PostPosted: Fri Jan 26, 2007 7:26 pm 
Ребят, не парьтесь с протоколом аськи, все это уже сделано и делается... Главное что нужно сделать - jabber клиент, а с его протоколом можно выйти в другие(icq, msn, yahoo, mail agent)


Top
   
 Post subject:
PostPosted: Fri Jan 26, 2007 9:35 pm 
Offline

Joined: Thu Jan 25, 2007 4:45 pm
Posts: 135
FAIM - Flat Assembler Instant Messenger
Многие инстант мессанджинговые пейджеры-монстры меряются всем, включая эквиваленты человеческих репродуктивных органов. Цвет, свет, размер, окрас, прочие прелести - вс¸ это вложено в основу для гордости у любого icq-клиента. И быть может этот клиент и не составит даже на гинетическом уровне конкуренцию монстрам, зато он реально маленький (~30кб) и с открытыми искодниками на ассемблере.

Скачать сам клиент + исходники можно тут: http://roticv.rantx.com/faim/download.html


Top
   
 Post subject:
PostPosted: Mon Jan 29, 2007 5:01 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
Serial, эта прога обсуждалась раньше. Проблема в строке import winsock,\
Прога заточена на использование виндового сетевого стека, а не нашего.


Top
   
 Post subject:
PostPosted: Tue Jun 12, 2007 1:07 am 
ЛЮДИ!!!!!!!!!!!
ЗАЧЕМ???
МЫ уходим от "ОКОН" icq создавалась для винды зачем нам копировать её+подключаться к её каналу???
Мне кажеться что будет лучьше если мы запустим свою программу для обмена сообщениями!
кто за?


Top
   
 Post subject:
PostPosted: Tue Jun 12, 2007 1:25 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Gagarin
Эхэхэ... Тут кто-то уже говорил: "Флаг в руки".


Top
   
 Post subject:
PostPosted: Tue Jun 12, 2007 1:30 am 
ну ты же сам понимаешь что одному это не осилить


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 75 posts ]  Go to page Previous 1 2 3 4 5 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited