|
Сверхбыстрый CopyMemory от Agner Fog
|
|||
---|---|---|---|
#18+
Пытаюсь заюзать библиотеку asmlib http://www.agner.org/optimize/ от гуру оптимизации Agner Fog. Смысл в том, что либа определяет тип процессора, и выполняет код с использованием SSE2-SSE4, в некоторых случая в 6 раз быстрее чем стандартные сишные функции, которые никаких новых инструкций процессора не используют. Сначала линкую библиотеку libacof32.lib к пустому ActiveX DLL проекту или к самому экзешнику, без разницы. Код: vbnet 1. 2.
Экспортируется функция A_memcpy: Код: plaintext 1.
В списке экспорта DLL/EXE файла она появляется. Затемы вызываю ее. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код работает только в скомпилированном EXE, а при запуске из IDE - авторBad Dll calling convertion Что vb нравится? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2015, 23:24 |
|
Сверхбыстрый CopyMemory от Agner Fog
|
|||
---|---|---|---|
#18+
Eolt, Соглашение вызова? Похоже что не StdCall. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2015, 23:53 |
|
Сверхбыстрый CopyMemory от Agner Fog
|
|||
---|---|---|---|
#18+
Пока вот так извратился: Прилинковал libacof32.lib к asmlibDll проекту, в DLL вызываю функцию из самого себя и экспортирую ее в проект через метод класса. Работает и в отладке и в экзешнике. Только непонятно как это скажется на скорости вызова A_memcpy, думаю что не самым лучшим образом... Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2015, 23:56 |
|
Сверхбыстрый CopyMemory от Agner Fog
|
|||
---|---|---|---|
#18+
ATM-TURBO 2Eolt, Соглашение вызова? Похоже что не StdCall. Cdecl в IDE и в скопилированном коде пишет что Bad Dll calling convertion. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2015, 23:57 |
|
Сверхбыстрый CopyMemory от Agner Fog
|
|||
---|---|---|---|
#18+
Eolt, CDecl ты можешь заюзать если объявишь в TLB, но это будет работать только в скомпилированном виде, зато без всяких лишних нагрузок. Для теста можешь через DispCallFunc вызывать из IDE. Вот пример, только смени CC_STDCALL на CC_CDECL. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2015, 00:04 |
|
Сверхбыстрый CopyMemory от Agner Fog
|
|||
---|---|---|---|
#18+
ATM-TURBO 2Eolt, CDecl ты можешь заюзать если объявишь в TLB, но это будет работать только в скомпилированном виде А тот CDecl который, что в VB можно объявить, он что "неправильный" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2015, 00:14 |
|
|
start [/forum/topic.php?fid=60&tid=2155883]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 158ms |
0 / 0 |