Re[2]: А вы говорите "точка нет"..
От: Trean Беларусь http://axamit.com/
Дата: 26.05.06 21:01
Оценка: +1
Здравствуйте, Dimonizhe, Вы писали:

D>Я пишу на Жабе корпоративные приложения. И уж точно не отношусь с пиететом к ассемблеру. Хочу сказать определенно — всякий шит тормозящий даже на двойных Зеонах с 3 гигами памяти ДОСТАЛ. Поэтому, если кто-то что-то оптимизировал на ассемблере, то это как минимум уважаемо как забота о нас.


BEA Weblogic?

На самом деле тормозит как правило не платформа или язык, а кривые ручки программистов, ленящихся почитать книжки про структуры данных и алгоритмы, и поэтому неумеющие их эффективно применять. Их не волнует, что допустим поиск элемента в выбранной структуре занимает O(n), находит, а это главное. Ну и про работу с потоками отдельная песня.
Re[2]: А вы говорите "точка нет"..
От: Awaken Украина  
Дата: 27.05.06 07:41
Оценка:
АХ>На ассемблере скорее всего написано немного + возможность заюзать SSE1/2/3, что не всегда компиляторы >Ю>(оптимально) делают.

имхо именно из-за этого асм и используют. чтоб напрямую заюзать специфические наборы
процессорных инструкций
Re[7]: А вы говорите "точка нет"..
От: Eugeny__ Украина  
Дата: 27.05.06 08:21
Оценка:
Здравствуйте, jenyavb, Вы писали:

J>Здравствуйте, Константин, Вы писали:


К>>Хорошо, пусть создаёт. Элементарнейший подсчёт: забэкапить всё то, что будет заменено, это (считаю по максимуму):

J>Он не только это бэкапит. Он создает точку восстановления. Это все-равно, что создать её вручную, столько-же времени займет.

А можно эту порчу отключать при установке?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[8]: А вы говорите "точка нет"..
От: jenyavb  
Дата: 28.05.06 14:11
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>А можно эту порчу отключать при установке?


Свойства системы — ВОССТАНОВЛЕНИЕ Системы — Отключить восстановлении системы на всех дисках.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: А вы говорите "точка нет"..
От: anton_t Россия  
Дата: 29.05.06 03:35
Оценка:
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, jenyavb, Вы писали:


J>>Здравствуйте, Константин, Вы писали:


К>>>Хорошо, пусть создаёт. Элементарнейший подсчёт: забэкапить всё то, что будет заменено, это (считаю по максимуму):

J>>Он не только это бэкапит. Он создает точку восстановления. Это все-равно, что создать её вручную, столько-же времени займет.

К>Во-первых, что такое точка восстановления по сути? Чем она отличается от простого бэкапа специфического набора файлов и веток реестра? Лично я этого не знаю, но просто не могу себе представить, чего такого можно понапихать в точку восстановления, чтобы её создание занимало в 10 раз больше времени, чем тупое копирование.


Наверное Volume Shadow Copy задействовано.
Re[9]: А вы говорите "точка нет"..
От: Константин http://flint-inc.ru/
Дата: 29.05.06 03:42
Оценка:
Здравствуйте, anton_t, Вы писали:

_>Наверное Volume Shadow Copy задействовано.


Ето шо такое и где управляется?
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[10]: А вы говорите "точка нет"..
От: Eugeny__ Украина  
Дата: 30.05.06 06:44
Оценка: :))
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, anton_t, Вы писали:


_>>Наверное Volume Shadow Copy задействовано.


К>Ето шо такое и где управляется?


Я бы по-другому спросил: где это вырубить?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[11]: А вы говорите "точка нет"..
От: OLEGus1 Россия  
Дата: 30.05.06 06:46
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Здравствуйте, Константин, Вы писали:


К>>Здравствуйте, anton_t, Вы писали:


_>>>Наверное Volume Shadow Copy задействовано.


К>>Ето шо такое и где управляется?


E__>Я бы по-другому спросил: где это вырубить?


служба есть такая
Crescite, nos qui vivimus, multiplicamini
Re[10]: А вы говорите "точка нет"..
От: anton_t Россия  
Дата: 31.05.06 04:30
Оценка:
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, anton_t, Вы писали:


_>>Наверное Volume Shadow Copy задействовано.


К>Ето шо такое и где управляется?


Служба такая. Для теневого копирования.
Re[11]: А вы говорите "точка нет"..
От: Константин http://flint-inc.ru/
Дата: 31.05.06 05:58
Оценка:
Здравствуйте, anton_t, Вы писали:

_>>>Наверное Volume Shadow Copy задействовано.


К>>Ето шо такое и где управляется?


_>Служба такая. Для теневого копирования.


Это-то я понял. Я не понял, что такое теневое копирование, нафига оно нужно, что, когда и куда она копирует "теневым образом" и чем это отличается от обычного копирования; как вся эта кухня настраивается и настраивается ли вообще (я не имею в виду просто запуск/остановку службы, с этим тоже всё ясно), ну и так далее. А просто перевести "Shadow Copy" с ангельского я уж как-нибудь и сам смог.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[12]: А вы говорите "точка нет"..
От: anton_t Россия  
Дата: 31.05.06 12:42
Оценка: 1 (1)
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, anton_t, Вы писали:


_>>>>Наверное Volume Shadow Copy задействовано.


К>>>Ето шо такое и где управляется?


_>>Служба такая. Для теневого копирования.


К>Это-то я понял. Я не понял, что такое теневое копирование, нафига оно нужно, что, когда и куда она копирует "теневым образом" и чем это отличается от обычного копирования; как вся эта кухня настраивается и настраивается ли вообще (я не имею в виду просто запуск/остановку службы, с этим тоже всё ясно), ну и так далее. А просто перевести "Shadow Copy" с ангельского я уж как-нибудь и сам смог.


Для конкретного процесса создаётся "снимок" тома, с которого он может копировать файлы и который не изменяется несмотря на то, что другие прцессы могут менять файлы на этом томе. Применяется для операций бэкапа. Его применение вполне может объяснить тормознутьсть MSI
Re[4]: А вы говорите "точка нет"..
От: NearBird  
Дата: 31.05.06 17:04
Оценка: -3 :))
Здравствуйте, Xander Zerge, Вы писали:

XZ>Нельзя уметь писать по-настоящему грамотный код на, скажем, C++, не зная и не представляя, в какой ассемблерный код это выльется при компиляции.


Я более крамольный весч скажу, ви только таки не обижайтесь тут. Нельзя вообще писать хороший и грамотный код на любом языке, не написав своими руками ни одного более-менее серьёзного оптимизирующего компилятора для языка высокого уровня.

Понимать, как ЯВУ отображается в ассемблер — это хорошо. Но ещё важнее понимать, почему он так отображается, и как этим процессом управлять.

XZ>Поэтому, в критически важных по времени участках, использование собственного ассемблерного кода может дать наилучший результат — если суметь увидеть, что С++ код не будет в точности транслирован в нужную ассемблерную последовательность, и написать кусочек наилучшим образом.


Да что вы все к этому убогому C++ прицепились? И ежу ясно, что оптимальный код из этого языка получить нельзя просто by design.
Re[5]: А вы говорите "точка нет"..
От: coldfire2 Россия http://www.dict.riot.ru
Дата: 02.06.06 03:43
Оценка:
Здравствуйте, NearBird, Вы писали:

NB> Да что вы все к этому убогому C++ прицепились? И ежу ясно, что оптимальный код из этого языка получить нельзя просто by design.


темку подчистили, но я надеюсь ты помнишь задачки и покажешь, что ты реальный программист, а не виртуал.
Re: А вы говорите "точка нет"..
От: unreg_flex  
Дата: 05.06.06 15:12
Оценка: +4
Здравствуйте, vhonest, Вы писали:

skip

Сразу видно что человек даже не знаком с примитивным набором команд своего проца.
Если вы сможете найти хотябы один компилятор С/С++/С# который умеет генерить
распараллеленный код на MMX/SSE/SSE2/SSE3/3DNow! то все ассемблерщики сразу на него пересядут.
Почемуто наличие шэйдеров и инструкций GPU в трехмерных играх никого не смущает,
хотя это тот же ассемблер только для видеокарты.

Для примера расскажу как я выучил ассемблер.
Однажды на нашей фирме возникла необходимость обрабатывать
цветные изображения разрешения 768x576 с четырех видеокамер в реалтайме.
Каждая камера давала по 25 кадров в сек.
Первую версию алгоритма я написал на STL при помощи мегамодных итераторов и функторов.
После сборки в релизе проц справлялся только с 4-мя кадрами в сек. А нужно 100! Что делать?
Я потратил 2 недели на изучение SSE2 и еще неделю на реализацию.
5 десятков вылизанных инструкций свободно молотили 100 кадров, более того проц был загружен на 10%.
В SSE2 есть инструкция psadbw которая за такт считает сумму модулей разностей 16 байтов,
как раз то что там было нужно!

И еще, не существует ни одного нормального кодера/декодера видео, который не написан на асме,
я не имею в виду тот примитив типа mov, xchg и т.п. а современные расширения процессоров
Re[2]: А вы говорите "точка нет"..
От: Cyberax Марс  
Дата: 05.06.06 16:27
Оценка:
unreg_flex wrote:
> Если вы сможете найти хотябы один компилятор С/С++/С# который умеет генерить
> распараллеленный код на MMX/SSE/SSE2/SSE3/3DNow! то все ассемблерщики
> сразу на него пересядут.
Intel C++ — уже много лет параллелит. Там при максимальном уровне
предупреждений даже выдается гордая надпись: "xx.cpp(yyy) : (col. nn)
remark: LOOP WAS VECTORIZED."

В GCC 4.1 тоже векторизация появилась, в 4.2 ее заметно расширят.

> Почемуто наличие шэйдеров и инструкций GPU в трехмерных играх никого не

> смущает, хотя это тот же ассемблер только для видеокарты.
Вот пример такого "ассемблера":
uniform sampler2D coeffsABC;
uniform sampler2D coeffsDEF;

void main( void )
{
   // Get the texture coordinates
   vec2 st = gl_TexCoord[0].st;

   // Read the polynomial coefficients from the textures
   vec3 ABC = vec3(texture2D(coeffsABC, st)-0.50196); // 8-bit signed,
   vec3 DEF = vec3(texture2D(coeffsDEF, st)-0.50196); // 128/255 -> 0.0

   // Construct vectors with powers of u and v
   vec3 uv1 = vec3(fract(st*32.0), 1.0);
   vec3 u2uvv2 = uv1.xxy * uv1.xyy;

   // Calculate the pixel size in (u,v) space for antialiasing
   vec4 duvdxy = 32.0*vec4(dFdx(st), dFdy(st));
   float stepwidth = 0.5*length(duvdxy);

   // Make a checkered pattern to show texel borders
   //vec2 cst = floor(mod(st*32.0, 2.0));
   //float c = mod(dot(cst, vec2(1.0, 1.0)), 2.0);

   // Evaluate the implicit curve polynomial
   float f = dot(ABC,u2uvv2) + dot(DEF,uv1);

   // Compute the magnitude of the gradient of the polynomial
   vec2 gradf = vec2(dot(uv1, vec3(2.0*ABC.x,ABC.y,DEF.x)),
     dot(uv1, vec3(2.0*ABC.z,ABC.y,DEF.y)));
   float g = inversesqrt(dot(gradf, gradf));

   // Set the color to be black when P<=0.0, white otherwise
   float a = smoothstep(-stepwidth, stepwidth, f*g);
   gl_FragColor = vec4(a, a, a, 1.0);
}
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[3]: А вы говорите "точка нет"..
От: vvotan Россия  
Дата: 05.06.06 16:54
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>unreg_flex wrote:

>> Если вы сможете найти хотябы один компилятор С/С++/С# который умеет генерить
>> распараллеленный код на MMX/SSE/SSE2/SSE3/3DNow! то все ассемблерщики
>> сразу на него пересядут.
C>Intel C++ — уже много лет параллелит.

Вот только не там и не то. Я тоже обрабатывал изображения 768x576 с видеокамер
В принципе, VC тоже что-то такое делает, но в критических местах толку от этого ноль.
--
Sergey Chadov

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: А вы говорите "точка нет"..
От: minorlogic Украина  
Дата: 24.06.06 18:59
Оценка:
Здравствуйте, vhonest, Вы писали:

[skiped]
вы эту шутку напишите расскажите QNX разработчикам , они ее оценят
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: А вы говорите "точка нет"..
От: Pyromancer  
Дата: 24.06.06 22:18
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>unreg_flex wrote:

>> Если вы сможете найти хотябы один компилятор С/С++/С# который умеет генерить
>> распараллеленный код на MMX/SSE/SSE2/SSE3/3DNow! то все ассемблерщики
>> сразу на него пересядут.
C>Intel C++ — уже много лет параллелит. Там при максимальном уровне
C>предупреждений даже выдается гордая надпись: "xx.cpp(yyy) : (col. nn)
C>remark: LOOP WAS VECTORIZED."

Да, ради интереса если дизассемблировать результаты компиляции IC++ даже простейших программок получается нечто практически нечитаемое , однако работает это быстро, особенно на всяких математически прожорливых программах типа шифрования это заметно.
Re[2]: А вы говорите "точка нет"..
От: Whistler Россия Блог на GotDotNet.ru
Дата: 28.06.06 12:16
Оценка: +1 -1
Здравствуйте, Eugeny__, Вы писали:

E__>Здравствуйте, vhonest, Вы писали:


V>>Я бы неспешил покупить программу, в которой часть, пусть даже и небольшая, написана на ассемблере, да еще и тщательно оптимизирована

V>>Щас ассемблерщики мне быстро минусов наставят

E__>Пишу на java и .net, но вот тебе минус. Чем ассемблер плох-то? Тем более это алгоритмы сжатия — их, имхо, и надо писать на асме, на крайняк — на си.

E__>Интересно, вы решили, что на асме нельзя написать качественную программу потому, что сами не можете этого сделать? Ну не стоит всех в свою рамку вписывать.


Почему нельзя? Конечно можно!

Просто мы живем в 21-ом веке, все со временем меняется, мировозрение и подход к разработке тоже меняется...

А) Раньше (80-ые — начало 90-ых) использовали ассемблер по двум причинам:

1. Код написанный "хомо-сапиенсом" будет более логичным, правильным и быстрым, по сравнению с кодом, который сгенерирован компилятором, так как анализаторы и оптимизаторы компиляторов тех времен желали ожидать лучшего.

СЕГОДНЯ НЕ АКТУАЛЬНО: Компиляторы дошли до такого уровня, чтобы оптимизировать код не хуже человека, а в некоторых местах еще и лучше (человек может ошибиться и что-то пропустить, — компилятор — машина — не пропустит).

2. В те времена происходил бурный рост коммандного множества процессоров (раньше 8086 от 80286, 80486 от Pentium — разительно отличались не только рабочими частотами, а еще и объемами поддерживаемых комманд). Компиляторы не успевали за развитием процессоров. Следовательно, для реализации более быстрого кода с применением новых процессорных комманд необходимо было писать вставки на ассемблере — компилятор же все компилировал, грубо говоря, под 8086.

СЕГОДНЯ НЕ АКТУАЛЬНО: Сегодня все компиляторы поддерживают все современные комманды процессоров. А с выходом новых проуессоров, в основном, увеличиваются только рабочие частоты — командные множества остаются такими же. Сегодня основное направление в развитии комманд процессора — математика для 3D графики — которая нужна в основном только разработчикам DirectX и видеокарт. Не уверен, что линейная алгебра потребуется для средства передачи звука.

3. Маниакальная борьба за производительность — оптимизации до байта.

СЕГОДНЯ НЕ АКТУАЛЬНО: Вычислительные мощности компьютеров настолько выросли, что намного себе дороже оптимизировать (сколько у тебя весит программа 2 мегабайта или 100 мегабайт, сколько жрет памяти — 1 метр или 50 метров — всем по барабану). А вот глючность никуда не девалась — 20 лет назад бесила пользователей и сегодня пользователей бесит.


Вывод: если проблемы производительности ушли сами собой по течению времени, за чем же ими заниматься?

Не лучше потраченное на это время уделить вопросам стабильности?
Re[3]: А вы говорите "точка нет"..
От: Cyberax Марс  
Дата: 28.06.06 12:42
Оценка: +2
Whistler wrote:
> СЕГОДНЯ НЕ АКТУАЛЬНО: Вычислительные мощности компьютеров настолько
> выросли, что намного себе дороже оптимизировать (сколько у тебя весит
> программа 2 мегабайта или 100 мегабайт, сколько жрет памяти — 1 метр или
> 50 метров — всем по барабану).
В данный момент у меня на компьютере 42 процесса. Большая часть занимает
около мегабайта (общий объем занятой памяти 442Мб), всего памяти 1Гб.

Если бы программы занимали хотя бы в два раза больше места — у меня
памяти бы не хватило. И при этом ничего особого на компьютере не стоит.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.