Я пытаюсь реализовать некоторые криптографические функции в ABAP, и меня путают с низкой производительностью операций над двоичными строками.Работа с двоичными данными в ABAP
Например, у меня есть строка X (не XString), и я хочу прочитать ее после байта в цикле. Я говорю:
DO n TIMES.
b = data+offset(1).
...
Это работает, но скорость чтения составляет около 1,5 МБ/с. Другие операции, включая побитовое добавление, круговые сдвиги и модульные дополнения, также работают медленно.
В результате у меня есть скорость хеширования около 600 КБ/с в ABAP по сравнению с ~ 100 МБ/с в C/C++.
У меня есть сомнение в том, что ABAP подходит для обработки двоичных данных. Возможно, существуют идиоматические способы обработки двоичных данных; или нет способа, кроме извлечения криптографических функций, например, в C# или Java-сервисах?
Я бы сказал, что ваши сомнения не являются необоснованными. Это не то, что было разработано ABAP, поэтому большинство криптографических функций, предоставляемых SAP (вы проверили их, чтобы увидеть, можно ли их повторно использовать, правильно? :-)) предоставляются функциями ядра. – vwegert
Да, к сожалению, мне нужна криптография для конкретной страны, которая еще не реализована SAP. Насколько я знаю, пользователи не имеют возможности реализовать свои собственные функции ядра (по крайней мере, потому, что у них нет источников требуемых заголовков C). –
На самом деле не существует возможности реализовать свои собственные функции ядра (поскольку они предоставляются исполняемым файлом 'disp + work', который не модифицируется). – mjturner