Здравствуйте ZORK, Вы писали:
ZORK>Попробуй вместо index, работать с инкрементируемыми указателями. Кажется мне, что такой вариант кода прооптимизируется лучше.
; 450 : double *p = tmp.pMO;
0003b 8b 44 24 14 mov eax, DWORD PTR _tmp$[esp+44]
; 451 : register int index = 0;
00047 33 c9 xor ecx, ecx
$L85342:
; 452 : do
; 453 : {
; 455 : *(p++) *= Number;
00049 dd 45 10 fld QWORD PTR _Number$[ebp]
0004c dc 08 fmul QWORD PTR [eax]
0004e 83 c0 08 add eax, 8
; 456 : index++;
00051 41 inc ecx
00052 dd 58 f8 fstp QWORD PTR [eax-8]
; 457 : }
; 458 : while (index < Vector1.Dimension);
00055 3b 4e 04 cmp ecx, DWORD PTR [esi+4]
00058 7c ef jl SHORT $L85342
Все равно сначала add eax,8 а затем fstp c -8 Компилятор VC 6.0 херня :down: :down:
ZORK>А если действительно надо быстро и на больших объемах данных, то смотри Intel Performance Library ( http://www.intel.com/software/products/perflib/ )
А за это спасибо :up: :up: