Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Действия над массивами Добавлено: 16.12.05 18:13  

Автор вопроса:  Dushes | ICQ: 249195431 
У меня есть несколько байтовых массивов одинакового размера. Вопрос: как можно БЫСТРО производить побайтовые математические операции. Например - сложение всех элементов массивов или деление на какое то число...

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #1
Добавлено: 16.12.05 23:31
Ну, я думаю, что Basic'ом ничего быстрее чем просто циклом сделать не получится.
Вроде API таких нет.
А вот на ассемблере, думаю, сможешь. Я слышал, что там mmx есть.

Ответить

Номер ответа: 2
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #2 Добавлено: 17.12.05 05:06
Да, mmx тут как раз в точку...

Чтобы ускорить работу с байтовым массивом, сделай его лонговым массивом. Потеряешь вчетверо больше памяти, но производительность увеличится. И поставь галку "Убрать проверку границы массива" в свойствах компиляции.

Ответить

Номер ответа: 3
Автор ответа:
 Dushes



ICQ: 249195431 

Вопросов: 8
Ответов: 110
 Профиль | | #3 Добавлено: 17.12.05 12:05
Ну я так сразу и подумал, что все равно на асме придется писать, ну да ладно, пойду TASM вспоминать...

Ответить

Номер ответа: 4
Автор ответа:
 Dushes



ICQ: 249195431 

Вопросов: 8
Ответов: 110
 Профиль | | #4 Добавлено: 17.12.05 12:06
То есть MASM...

Ответить

Номер ответа: 5
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #5 Добавлено: 17.12.05 12:45
Да, mmx тут как раз в точку...

А VBшный компилятор mmx-оптимизаций не делает?

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 17.12.05 13:10
При работе с байтовыми массивами?
Нет, а должен?

Ответить

Номер ответа: 7
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 18.12.05 01:01
Я слышал, что там mmx есть.

 Не, MMX не поможет, деления там нет. Умножение только, да и то для слов, а не для байт.
 Сложение есть, можно складывать 8 байт или 4 слова или 2 двойных слова одновременно (потому что 64-битная мантиса регистров сопроцессора). Причём кроме циклического сложения ещё есть сложение со знаковым или беззнаковым насыщением. Правда не думаю что MMX предназначена для сложения... хотя кто знает, тестов я не проводил. Можно только посудить логически из этого порядка:
1. Грузим 8 байт в MM0 из памяти [m1]
2. Складываем MM0 с памятью [m2]
3. Выгружаем из MM0 в [m1]
4. Следующие 8 байт

или же всё таки провести тесты.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам