Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
29 Март 2024, 01:44:07
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

Языки программирование

Страниц  : 1 2 4 5 Далее»  Все   Вниз
  Печать  
Автор Тема: Языки программирование  (Прочитано 19183 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ancestor::
Гродненец
**

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 127


Не знаешь как правильно – делай, как знаешь…

Просмотр профиля
« Ответ #60 : 01 Март 2006, 11:14:58 »

Цитировать
Цитировать
и в общем сколько я не пускал eclipse что то плакать ну никак не хотелось  может это от того что я им под виндой пользуюсь  ?
Ой-ой-ой сидел под этим жахом полгода - да ну его нах с его тормозами и отжыранием под полГига памяти которая ничего не целесообразно юзаеться. Единственный плюс - мощный дебаггер. Я при всей своей любови да Джавы всё таки посыпаю голову пеплом - жава-ГУИ весч достаточно тормознутая ( пока )

- Не люблю я кошек.
- Ты просто не умеешь их готовить
 8-)
Записан

"I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing...Only I will remain" F.H., D
maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #61 : 01 Март 2006, 23:59:48 »

Цитировать
Вот, кстати, кусок моего кода mmx'ового:

       movd mm2, [ebp + ecx]
       movd mm3, [esi + ecx]
       PUNPCKLBW mm2, mm4
       PUNPCKLBW mm3, mm4
       psubw mm2, mm3

       pmullw mm2, mm1

       movq mm3, mm0
       psubw mm3, mm2
       PACKUSWB mm3, mm3

Делает аналогичный сишный раз в 20-30.
Называется этот чудо-алгоритм DSA - цифровая субтракционная ангиография.
что-то ваш код батенька устарел)
mmx-у уже лет 6-ть
и толку с ваших знаний? Нынче рулят sse2 3dnowext и 64bit инструкции...
Улыбка спрашивается и толку с ваших знаний?
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #62 : 06 Апрель 2006, 19:44:50 »

А в почему такой ажиотаж, что оптимизированный асмовый код делает дефолтный сишный? Это подразумевается. Потому все критичные по скорости библиотечные сишные функции (обработка строк, работа с памятью, и т.п.) и написаны на асме.
« Последнее редактирование: 06 Апрель 2006, 19:47:08 от spammer » Записан
iced
Гость


Email
« Ответ #63 : 06 Апрель 2006, 21:18:57 »

Цитировать
Потому все критичные по скорости библиотечные сишные функции (обработка строк, работа с памятью, и т.п.) и написаны на асме.

на си они писаны, на си. на 99.99999%
Записан
iced
Гость


Email
« Ответ #64 : 06 Апрель 2006, 21:26:36 »

ну вот например кусок из маллока (глибц-2.3.5). код страшный, но 100% сишный. потому что писать подобные вещи на ассемблере - безумие.

Код:
#define MALLOC_ZERO(charp, nbytes)                                            \
do {                                                                          \
  INTERNAL_SIZE_T* mzp = (INTERNAL_SIZE_T*)(charp);                           \
  unsigned long mctmp = (nbytes)/sizeof(INTERNAL_SIZE_T);                     \
  long mcn;                                                                   \
  if (mctmp < 8) mcn = 0; else { mcn = (mctmp-1)/8; mctmp %= 8; }             \
  switch (mctmp) {                                                            \
    case 0: for(;;) { *mzp++ = 0;                                             \
    case 7:           *mzp++ = 0;                                             \
    case 6:           *mzp++ = 0;                                             \
    case 5:           *mzp++ = 0;                                             \
    case 4:           *mzp++ = 0;                                             \
    case 3:           *mzp++ = 0;                                             \
    case 2:           *mzp++ = 0;                                             \
    case 1:           *mzp++ = 0; if(mcn <= 0) break; mcn--; }                \
  }                                                                           \
} while(0)

#define MALLOC_COPY(dest,src,nbytes)                                          \
do {                                                                          \
  INTERNAL_SIZE_T* mcsrc = (INTERNAL_SIZE_T*) src;                            \
  INTERNAL_SIZE_T* mcdst = (INTERNAL_SIZE_T*) dest;                           \
  unsigned long mctmp = (nbytes)/sizeof(INTERNAL_SIZE_T);                     \
  long mcn;                                                                   \
  if (mctmp < 8) mcn = 0; else { mcn = (mctmp-1)/8; mctmp %= 8; }             \
  switch (mctmp) {                                                            \
    case 0: for(;;) { *mcdst++ = *mcsrc++;                                    \
    case 7:           *mcdst++ = *mcsrc++;                                    \
    case 6:           *mcdst++ = *mcsrc++;                                    \
    case 5:           *mcdst++ = *mcsrc++;                                    \
    case 4:           *mcdst++ = *mcsrc++;                                    \
    case 3:           *mcdst++ = *mcsrc++;                                    \
    case 2:           *mcdst++ = *mcsrc++;                                    \
    case 1:           *mcdst++ = *mcsrc++; if(mcn <= 0) break; mcn--; }       \
  }                                                                           \
} while(0)

а критичный strdup например `тупо` реализован простыми вызовами strlen, malloc, memcpy:

Код:
char *
__strdup (const char *s)
{
  size_t len = strlen (s) + 1;
  void *new = malloc (len);

  if (new == NULL)
    return NULL;

  return (char *) memcpy (new, s, len);
}
#ifdef libc_hidden_def
libc_hidden_def (__strdup)
#endif
#ifdef weak_alias
weak_alias (__strdup, strdup)
#endif

итд итп.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #65 : 07 Апрель 2006, 01:36:50 »

Как-нибудь повтыкай папочку
С:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src\intel\ или как там она у тебя назывется
там лежит хороший ОПТИМИЗИРОВАННЫЙ код

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

ps писать такие вещи на асме - далеко не безумие, а прикрытие узких мест производительности кода
« Последнее редактирование: 07 Апрель 2006, 01:43:35 от spammer » Записан
iced
Гость


Email
« Ответ #66 : 07 Апрель 2006, 01:47:35 »

Цитировать
Как-нибудь повтыкай папочку
С:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src\intel\

1. нету у меня такой.
2. этим убогим надо только x86 поддерживать - а что делать с зоопарком из пары десятков архитектур?
3. теперь я тем более не доверяю мелкософту - коре части писать на ассемблере НЕЛЬЗЯ! они немайнтабельны и нетестируемы.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #67 : 07 Апрель 2006, 01:58:30 »

1. http://zergirl.at.Тут/strlen.asm
2. а) в чем проблема написать оптимизированный код для другой архитектуры. б) если даже он не написан, то возьмется дефолтный сишный код.
3. смысл до меня не дошел. по-твоему коре должны работать НЕ оптимально?
Записан
iced
Гость


Email
« Ответ #68 : 07 Апрель 2006, 05:01:30 »

1. жуть
2. посчитаем архитектуры? одних x86 пара десятков комбинаций наберётся (с различными вариациями mmx, sse, ...). кто писать будет?
3. коре должно работать в первую очередь СТАБИЛЬНО. повторяю. СТАБИЛЬНО.

PS. сделал тут тестовую прожку (туча дёрганий различных функов которые работают с памятью). скомпилял под лялих (gcc-4.1.0 -march=athlon-xp) и попросил знакомого вентузятника скомпилять под венту (msvc2003). линукосвая (писанная на медленном си) на 15% быстрее. сюююрприиииз.
Записан
Archi
Почетный гродненец
*****

Репутация: +25/-1
Offline Offline

Пол: Мужской
Сообщений: 1176


Unsilent Chburashko in the northern sky

Просмотр профиля WWW
« Ответ #69 : 07 Апрель 2006, 05:03:14 »

Цитировать
1. http://zergirl.at.Тут/strlen.asm
2. а) в чем проблема написать оптимизированный код для другой архитектуры. б) если даже он не написан, то возьмется дефолтный сишный код.
3. смысл до меня не дошел. по-твоему коре должны работать НЕ оптимально?
По моим скромным наблюдениям все фанатичные линуксоиды любят пощеголять словом "портабельность".
Записан

У меня дикая аллергия на тупость. Я сразу покрываюсь сарказмом.
iced
Гость


Email
« Ответ #70 : 07 Апрель 2006, 05:06:04 »

ээ - имеются в виду реализации данных фунок. вот.
Записан
iced
Гость


Email
« Ответ #71 : 07 Апрель 2006, 05:09:17 »

Цитировать
По моим скромным наблюдениям все фанатичные линуксоиды любят пощеголять словом "портабельность".

это суровая необходимость в этом жестоком мире. не все же пишут `базы данных на аксессе` (ц) и чистилки реестра. бывают и другие задачи.
Записан
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #72 : 07 Апрель 2006, 11:28:58 »

Блин, во развели тему Смеющийся Смеющийся Смеющийся Веселый Веселый Веселый
как сказал один умный дадька: "биты, байты, шины, адреса - мне это надоело. Языки низкого уровня меня больше не интересуют!"
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #73 : 07 Апрель 2006, 11:37:08 »

Цитировать
2. а) в чем проблема написать оптимизированный код для другой архитектуры. б) если даже он не написан, то возьмется дефолтный сишный код.
Записан
iced
Гость


Email
« Ответ #74 : 07 Апрель 2006, 13:30:22 »

твааааю маааать. ещё раз. для совсем больных. ты прогу написал. под x86 и амд64 (такая портабельность и вентузятникам нужна. бееедные). в силу того что ты не знаешь (и не будешь знать) амд64 ассемблер, ты написал функу сохранения/загрузки для амд64 на си и для x86 на ассемблере (и тебя почему то не выгнали с работы после этого). ок. в х86 коде ты допустил ашипку. маааленькую. и стало оно у тя работать немного отлично от амд64 варианта. твой кастомер вначале попользовав прогу на x86 (ту, с багом) пересел на амд64. и тут жуякс - при попытке загрузки файла оно стало вылетать. поседееешь фиксить. ну ладно - через 2 года упорной отладки ты багу отловил и кастомер доволен. теперь ему нужно поменять что нить мелкое в данной функе. но срочно. вчера как обычно. и ты обмотав язык вокруг шеи делаешь работу пять раз (один раз на си, один раз на ассемблере - по временным затратам как минимум на 4 сишных выйдет). после этого ты успешно вылетел с работы (или разорился, хотя непонятно как с таким подходом к написанию софта ты умудрилсч открыть конторку свою) и всем хорошо (кроме тебя и кастомера, у которого не работает). ну вот. вполне реальная задачка.

и ещё раз насчёт быстрее. цитирую умного человека (себя):

Цитировать
PS. сделал тут тестовую прожку (туча дёрганий различных функов которые работают с памятью). скомпилял под лялих (gcc-4.1.0 -march=athlon-xp) и попросил знакомого вентузятника скомпилять под венту (msvc2003). линукосвая (писанная на медленном си) на 15% быстрее. сюююрприиииз.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #75 : 07 Апрель 2006, 19:42:31 »

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

ps Подскажи своему другу как включить Intel Compiler
Записан
iced
Гость


Email
« Ответ #76 : 07 Апрель 2006, 21:29:34 »

1. ассемблерный код для пачки платформ тестируемый? ха ха ха.
2. причём тут интел компайлер - я тестил не компилеры а скорость либц.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #77 : 07 Апрель 2006, 22:30:21 »

1. забыл слово "лопата" Подмигивающий
2. не думал, что дефолтный компайлер vs2k3 и gcc могут немножко различаться?
« Последнее редактирование: 07 Апрель 2006, 22:31:07 от spammer » Записан
iced
Гость


Email
« Ответ #78 : 07 Апрель 2006, 23:51:37 »

твоюмать. КАКАЯ разница что там нагенерил компилер. там тупые вызовы различных malloc(), free(), strlen(), strdup(), strcpy(), strcat(), ... тестируется не компилёр а реализация данных фунок в либц. я проверил что ни гцц ни цл не соптимизировали вызовы в пустые. результат - быстрая ассемблерная реализация либц от мелкософт отсосала у медленной сишной. непорядок, ага.

в 10тый раз объяснять не буду.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #79 : 08 Апрель 2006, 00:43:17 »

Попрошу циферки. Что-нибудь вроде: тестируемый исходник, программа тайминга, линк на используемые компилеры/либы, настройки этих компилеров.
« Последнее редактирование: 08 Апрель 2006, 00:45:24 от spammer » Записан
iced
Гость


Email
« Ответ #80 : 08 Апрель 2006, 03:45:24 »

цифирьки - ~20% лялиховый глибц быстрее. тайминг - вывод time() перед стартом и после окончания. вентовый бинарник был откомпилен clем (msvs 2003) с дефолтовыми опциями. лялиховый бинарник был откомпилен gcc 4.1 с дефолтовыми опциями. (и ещё раз - какая разница чем и как откомпилена пачка вызова фунок) оба бинарника были проверены - код не был соптимизирован в nop. вентовый либц - это наверное тот быстрый на ассемблере (xpsp2). лялиховый глибц 2.4 собранный с моими дефолтовыми ключиками (-O2 -march=athlon-xp). возражения типа `а чего это ты под атлон собираешь то` не принимаются - как хочу так и собираю (и вообще это преимущество сей). фил фри пересобрать вентовый чем угодно и с какими угодно ключами. код на работе - дам позже.

PS. потом на амд64 протестим ;]
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #81 : 08 Апрель 2006, 23:35:19 »

По дефолту берется дефолтный либц - т.е. сишный. Асмовый включается Intel Compiler'ом.
Записан
iced
Гость


Email
« Ответ #82 : 08 Апрель 2006, 23:40:49 »

не понял?
а какая разница какой там компилер то?! он же на ассемблере?
Записан
iced
Гость


Email
« Ответ #83 : 08 Апрель 2006, 23:43:48 »

стоп стоп. то есть в системе работает либц писанный на сях. но если тебе делать нехер можешь собрать и поставить себе `быстрый` ассемблерный?  а как же крики что в венте вот либц быстрый на ассемблере?

кто-то из нас бредит.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #84 : 09 Апрель 2006, 00:54:51 »

Цитировать
не понял?
а какая разница какой там компилер то?! он же на ассемблере?
В данном конкретном случае разница в том, какие по дефолту берутся либы - либо общие, либо оптимизированные.

Цитировать
стоп стоп. то есть в системе работает либц писанный на сях. но если тебе делать нех#р можешь собрать и поставить себе `быстрый` ассемблерный?  а как же крики что в венте вот либц быстрый на ассемблере?
1) да; 2) какие крики? имхо имеет место простое недопонимание друг друга.
Записан
iced
Гость


Email
« Ответ #85 : 09 Апрель 2006, 01:12:32 »

Цитировать
В данном конкретном случае разница в том, какие по дефолту берутся либы - либо общие, либо оптимизированные.

погуглил. гугель ничего не знает о `быстрых` вентовых либцах. есть тока одни - те которые в комплекте. они отсасывают у медленных линуксовых писанных на си. точка.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #86 : 09 Апрель 2006, 01:44:49 »

Гугль много чего не знает. Поэмэсдээнь =)
« Последнее редактирование: 09 Апрель 2006, 01:46:23 от spammer » Записан
iced
Гость


Email
« Ответ #87 : 09 Апрель 2006, 03:42:26 »

http://msdn.microsoft.com тоже смотрел. не нашёл. какие то таинственные быстрые либцы. рвут всех. встречаются только в секретных лабораториях мелкософт и у тов. спаммера.
Записан
spammer
Почетный гродненец
*****

Репутация: +78/-19
Offline Offline

Пол: Мужской
Сообщений: 1455


Пыхнуть не хотите?

Просмотр профиля
« Ответ #88 : 09 Апрель 2006, 14:55:24 »

Это об Intel Compiler:
http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm
http://www.intel.com/cd/software/products/asmo-na/eng/compilers/clin/index.htm

Насчет асмового либц: к cl его надо подключать ручками, т.е. через настройки линкера.
Записан
maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #89 : 09 Апрель 2006, 16:22:20 »

Цитировать
Это об Intel Compiler:
http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm
http://www.intel.com/cd/software/products/asmo-na/eng/compilers/clin/index.htm
Насчет асмового либц: к cl его надо подключать ручками, т.е. через настройки линкера.

ПОД ЧТО ОПТИИЗИРОВАНЫЕ?
Зашибись а если у меня amd?
из всех x86 архитектур ты предлагаеш к Intel?
что за бредни...
что по вашему libc каждый год на asm-е переписывают?
а не пойму вы что ДЕЙСВИТЕЛЬНО верите что libc переписывают?
1. под sse
2. под sse2
3. под sse3
... под прочие mmx, mmx2
вон в том (aсмовсокм libc твоем) есть суппорт sse/sse2?
или просто mmx, mmx2, 3dnow, etc?
там что по твоему asm-овский код для минимум 6 архитектур?
итак повторю вопрос? ТАКИ ПОД ЧТО?
Улыбка
Записан
Страниц  : 1 2 4 5 Далее»  Все   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,178 секунд. Запросов: 19.