При добавлении поля поиска к ASP.NET динамические данные перечисляют страницу

Немного об оптимизации

Например, это код C:

int main(int argc, char** argv) {
  printf("Hello World\n");
  return 0;
}

Когда вы сборка с -O0, оптимизация кода выполняется очень редко, а код выполняется очень медленно. Это неоптимизированный код (gcc -m32):

; Variables:
        ;    arg_4: 12
        ;    arg_0: 8
        ;    var_4: -4
        ;    var_8: -8
        ;    var_C: -12
        ;    var_10: -16
        ;    var_18: -24
push       ebp
mov        ebp, esp
sub        esp, 0x18
call       _main+11
pop        eax                            ; CODE XREF=_main+6

-- These lines are gone after optimization --
mov        ecx, dword [ebp+arg_4]
mov        edx, dword [ebp+arg_0]
--                                    --
lea        eax, dword [eax-0x1f5b+0x1fa6] ; "Hello World!\\n"

-- There lines are gone after optimization --
mov        dword [ebp+var_4], 0x0
mov        dword [ebp+var_8], edx
mov        dword [ebp+var_C], ecx

mov        dword [esp+0x18+var_18], eax  ; method imp___symbol_stub__printf
call       imp___symbol_stub__printf
xor        ecx, ecx                           
mov        dword [ebp+var_10], eax
mov        eax, ecx                                    
add        esp, 0x18                           
pop        ebp
ret

При сборке с -03 вы заметите, что строк меньше. Оптимизированный код (gcc -m32 -O3):

push       ebp
mov        ebp, esp
sub        esp, 0x8
call       _main+11
pop        eax                             ; CODE XREF=_main+6
lea        eax, dword [eax-0x1f6b+0x1f9e]  ; "Hello World!"
mov        dword [esp+0x8+var_8], eax      ; "%s" for imp___symbol_stub__puts
call       imp___symbol_stub__puts
xor        eax, eax
add        esp, 0x8
pop        eep
ret

Причина, по которой неоптимизированный код имеет ненужные строки, заключается в том, что main принимает два аргумента и сохраняет их в регистры независимо от того, используете ли вы или не без оптимизации, но при оптимизации компилятор удаляет эти инструкции mov, потому что аргументы не используются и не нужны. Аналогично, значения регистров также сохраняются в переменных стека, поскольку аргументы копируются в переменные стека.

6
задан animuson 26 April 2012 в 19:04
поделиться

2 ответа

Проект CodePlex под названием ASP.NET, Динамическая Фильтрация Данных позволяет легко искать любую информацию о Вашем сайте даже при использовании Динамической платформы Данных из ASP.NET 3.5. Следуйте этим инструкциям для получения поискового текстового поля.

5
ответ дан 16 December 2019 в 21:47
поделиться

Новые Динамические Данные 4 предварительных просмотра включают Источник данных, названный BusinessLogicDataSource, вот являются некоторыми примерами того, как можно использовать их для реализации поиска.

http://quickstarts.asp.net/previews/dynamicdata/dd_AddSearchtoDynamicData.htm

Я не могу действительно сказать, как сделать это в текущей реализации Динамических Данных, я искал этот ответ также и споткнулся и на сайт предварительного просмотра и на этот вопрос.

2
ответ дан 16 December 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: