IPB

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Ответить в эту темуОткрыть новую тему
> Человек, который живет ASSEMBLERом
ermsoft
сообщение 8.8.2004, 21:19
Сообщение #26





Группа: Пользователи
Регистрация: 3.9.2003
Пользователь №: 246



[quote=исчезающий.point]
системная - это та, которая физически, предположительно, не отображена в кэш.[/quote]
Кэш чего?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
исчезающий.point
сообщение 8.8.2004, 21:36
Сообщение #27





Гости





процессора.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 9.8.2004, 20:59
Сообщение #28





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



[quote=ermsoft]По-моему вопрос в том надо ли использовать ассемблерные вставки, ответ - если буфер 20 байт и меньше, то нет. Если буфер больше, то да.
Память плоская у винды, а что такое системная память, отделённая от кэша? И чем она быстрее/медленнее остальной оперативной?[/quote]
спасибо! клева так-то получилось.
а PHP чем привлек? под вэб понравилось писать?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 9.8.2004, 21:05
Сообщение #29





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



[quote=исчезающий.point]2 Plazmid для того, чтобы было быстро. какой целевой процессор? и какую именно память надо обнулять? ту, которая в кэше (или которая будет вскоре после обнуления использоваться), или ту, которая должна лежать в системной памяти (то есть, всякие там битмэпки и прочее)?[/quote]
под Pentium III, а вообще желательно, чтобы совместимость все же была. Так что, процессор в основном от Intel. Атлоны я не люблю.
Вообще эта память будет и под битмэпки и под строки, кэш думаю обнулять не стоит. Мне переменные нужно обнулять.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Живой
сообщение 9.8.2004, 22:29
Сообщение #30





Группа: Пользователи
Регистрация: 29.8.2003
Из: <VIZ><Местный><ReZidenci9 FlydiRov>
Пользователь №: 77



Ну вы фанаты парни ...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 9.8.2004, 22:34
Сообщение #31





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



[quote=Живой]Ну вы фанаты парни ...[/quote]
асм - кул, при работе с памятью. :kissgirl:
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Norman
сообщение 10.8.2004, 19:08
Сообщение #32





Группа: Модераторы
Регистрация: 29.8.2003
Из: Уралмаш
Пользователь №: 63



короче :doh: самый классный Ассамблер - "РУССКИЙ МАТ" biggrin.gif всё отладит, дело говорю
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
исчезающий.point
сообщение 13.8.2004, 17:05
Сообщение #33





Гости





не могу найти доку по оптимизации для pentium 3 :verysad: но, например, в ядре linux, когда его конфигурируешь его для p3, выбирается вариант для memset очень похожий на то, что написал ermsoft. вот такие дела. хм... но для для любимой атлонки и pentium 4 это будет медленно.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ermsoft
сообщение 13.8.2004, 17:38
Сообщение #34





Группа: Пользователи
Регистрация: 3.9.2003
Пользователь №: 246



Тут вопрос в том какие можно использовать команды, а какие нет. То, что я написал будет работать и на 8086, а на сколько я понимаю календарь не будет распространяться в исходном виде wink.gif Так что расчитывать надо на всех сразу wink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
исчезающий.point
сообщение 13.8.2004, 17:43
Сообщение #35





Гости





ну так это... и для athlon'a будет generic code просто инструкции другие и в сециальном порядке.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ermsoft
сообщение 13.8.2004, 17:47
Сообщение #36





Группа: Пользователи
Регистрация: 3.9.2003
Пользователь №: 246



QUOTE(исчезающий.point)
ну так это... и для athlon'a будет generic code просто инструкции другие и в сециальном порядке.


Например? Что быстрее rep stos?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
исчезающий.point
сообщение 13.8.2004, 17:53
Сообщение #37





Гости





QUOTE(ermsoft)
QUOTE(исчезающий.point)
ну так это... и для athlon'a будет generic code просто инструкции другие и в сециальном порядке.


Например? Что быстрее rep stos?


развёрнутый обычный цикл. что-то вроде.

label:
movb [ esi ], 0
movb [ edi + 1], 0
movb [ edx + 2 ], 0

movb [ esi + 4 ], 0
movb [ edi + 5 ], 0
movb [ edx + 6 ], 0
...
addb esi, 0x16
addb edi, 0x16
addb edx, 0x16
dec ecx
jnz label

особенности конвейера и всё такое.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 13.8.2004, 20:40
Сообщение #38





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



QUOTE(ermsoft)
Тут вопрос в том какие можно использовать команды, а какие нет. То, что я написал будет работать и на 8086, а на сколько я понимаю календарь не будет распространяться в исходном виде wink.gif Так что расчитывать надо на всех сразу wink.gif

Ну исходники прог, написанные под винды... политика у MS вообще-то не та. А в целом ты уловил смысл. молодец.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 13.8.2004, 20:42
Сообщение #39





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



QUOTE(исчезающий.point)
развёрнутый обычный цикл. что-то вроде.
особенности конвейера и всё такое.

А процедуры я не вижу, конечной её структуры.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
исчезающий.point
сообщение 13.8.2004, 20:44
Сообщение #40





Гости





QUOTE(Plazmid)
QUOTE(исчезающий.point)
развёрнутый обычный цикл. что-то вроде.
особенности конвейера и всё такое.

А процедуры я не вижу, конечной её структуры.
а зачем? это только для athlon быстро. а для pentium 3 я не знаю, как. говорю же: не нашёл optimization guide.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 13.8.2004, 20:49
Сообщение #41





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



QUOTE(исчезающий.point)
QUOTE(Plazmid)
QUOTE(исчезающий.point)
развёрнутый обычный цикл. что-то вроде.
особенности конвейера и всё такое.

А процедуры я не вижу, конечной её структуры.
а зачем? это только для athlon быстро. а для pentium 3 я не знаю, как. говорю же: не нашёл optimization guide.

т.е. процедура на асме, написанная Игорем - законченный вариант?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ermsoft
сообщение 13.8.2004, 22:06
Сообщение #42





Группа: Пользователи
Регистрация: 3.9.2003
Пользователь №: 246



QUOTE(Plazmid)

а PHP чем привлек? под вэб понравилось писать?


Захотелось мне тут как-то написать Каталог фильмов под веб. Ну и встал передо мной выбор языка. perl мне не понравился своей cgi-bin'ностью. А php привлёк возможностью встраиваться, похожестью на C и простотой интерфейса к БД. Начал его изучать, втянулся wink.gif Потом ещё проект понадобился один. А сейчас я даже консольные скрипты предпочитаю на php ваять wink.gif Типа - получить имя компьютера на котором работает юзер в данный момент, по имени юзера... Тут вообще смесь из ldap (ActiveDirectory), MySQL и консольной утилитки, которая получает список пользователей на машине. Но всем "управляет" скрипт на php... Правда не доделал пока. Проблемы появились с консольной утилиткой, которая как-то криво начинает работать после внесения изменений в код (написана на C). Вроде бы удаляю только вывод лишних комментариев, а работать перестаёт, фигня какая-то... (http://www.sysinternals.com/ntw2k/freeware/psloggedon.shtml)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
исчезающий.point
сообщение 13.8.2004, 22:40
Сообщение #43





Гости





QUOTE(Plazmid)
QUOTE(исчезающий.point)
QUOTE(Plazmid)
QUOTE(исчезающий.point)
развёрнутый обычный цикл. что-то вроде.
особенности конвейера и всё такое.

А процедуры я не вижу, конечной её структуры.
а зачем? это только для athlon быстро. а для pentium 3 я не знаю, как. говорю же: не нашёл optimization guide.

т.е. процедура на асме, написанная Игорем - законченный вариант?
угу. в linux для p3 именно этот код используется. наверное, он эффективен.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 13.8.2004, 22:57
Сообщение #44





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



такое ощущение, что здесь точно собрались маньяки.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ermsoft
сообщение 13.8.2004, 23:12
Сообщение #45





Группа: Пользователи
Регистрация: 3.9.2003
Пользователь №: 246



QUOTE(Plazmid)
такое ощущение, что здесь точно собрались маньяки.

Ты лучше давай следующее задание wink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 13.8.2004, 23:45
Сообщение #46





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



QUOTE(ermsoft)
Ты лучше давай следующее задание wink.gif

вот это я понимаю. Что же, поехали дальше.
CODE
char* toString(long n)

{

  long m = (n<0) ? (-1*n) : (n);

  static char X[11];

  char *p=X+sizeof(X)-1;

  *p=0;



  do

  {

     *(--p)=(char)(m%10)+'0';

  }

  while(m/=10);



  if (n<0) *(--p) = '-';

  return p;

}

Тут в общем-то тоже все прозрачно. Эта подпрограмма была описана в др. ветке, я её доработал, принимаю на Си какие-либо еще доработки, если не усмотрел.
Значит на входе число 8 байтное (long), затем в переменной m мы обнуляем эммм... мантиссу? в общем минус грохаем (если есть)
затем плавно заливаем символами, начиная с последнего, и в конце, если число было отрицательным ставим добавляем символ "-"
вот и все.
Зачем мне нужно увеличить скорость? эта процедура вызывается достаточно часто, за раз до 360.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ermsoft
сообщение 14.8.2004, 00:43
Сообщение #47





Группа: Пользователи
Регистрация: 3.9.2003
Пользователь №: 246



Вообще-то длина long - 4 байта...
long num = 1;
printf("%d", sizeof(num));
Даёт 4...
А в справке написано 8... И реально 8, почему тогда sizeof врёт?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Plazmid
сообщение 14.8.2004, 03:32
Сообщение #48





Группа: Пользователи
Регистрация: 2.1.2004
Из: Уралмаш
Пользователь №: 1 413



Может быть компиляторы старые? дома на Intel проверю, видимо в 6-ой все же он 32-х битный, в 5-ой тоже, поверь.
Остается 7-ой проверить (это я все компиляторы от MS VC++)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
buggzy
сообщение 14.8.2004, 09:50
Сообщение #49





Группа: Пользователи
Регистрация: 20.4.2004
Из: из дома
Пользователь №: 1 915



QUOTE(Plazmid)
есть такие?
:doctor: ?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
buggzy
сообщение 14.8.2004, 09:53
Сообщение #50





Группа: Пользователи
Регистрация: 20.4.2004
Из: из дома
Пользователь №: 1 915



QUOTE(Plazmid)
QUOTE(ermsoft)
Ты лучше давай следующее задание wink.gif

вот это я понимаю. Что же, поехали дальше.
CODE
char* toString(long n)

{

  long m = (n<0) ? (-1*n) : (n);

  static char X[11];

  char *p=X+sizeof(X)-1;

  *p=0;



  do

  {

     *(--p)=(char)(m%10)+'0';

  }

  while(m/=10);



  if (n<0) *(--p) = '-';

  return p;

}

Тут в общем-то тоже все прозрачно. Эта подпрограмма была описана в др. ветке, я её доработал, принимаю на Си какие-либо еще доработки, если не усмотрел.
Значит на входе число 8 байтное (long), затем в переменной m мы обнуляем эммм... мантиссу? в общем минус грохаем (если есть)
затем плавно заливаем символами, начиная с последнего, и в конце, если число было отрицательным ставим добавляем символ "-"
вот и все.
Зачем мне нужно увеличить скорость? эта процедура вызывается достаточно часто, за раз до 360.
а зачем может понабобиться быстро выполнять преобразование в человекочитаемое значение? человек всяко медленее читает, чем любой алгоритм преобразования работает... по-моему, тут дизайн программы менять надо.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

4 страниц V  < 1 2 3 4 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 24.4.2018, 05:44
Блог КАБiNET