С указательной арифметикой? Ну жуть же!
Обрати внимание на -gcflags=-B.
Да, всё так, без отключения проверок границ (что в коде сделать нельзя, к сожалению) было бы сильно хуже.
Clang++ даёт хорошие результаты, если использовать range-based for или если вместо std::string сравнивать прямо элементы C-массива (.c_str()).
Не знаю, насколько это близко к описанной проблеме, но что-то явно очень медленно при использовании оператора [] у std::string.
Не хочу комментировать, что 0xd34df00d намерял с C++, но ведь с D именно так оно и есть уже.
Можно было бы ещё LDC приложить, ведь он быстрее DMD справился с сей задачей.
<…>
let ca1: Vec<u8> = s1.bytes().collect();
let ca2: Vec<u8> = s2.bytes().collect();
let mut v0: Vec<i32> = (0..).take(n + 1).collect();
let mut v1 = v0.to_vec();
for (i, c1) in ca1.iter().enumerate() {
unsafe {
*v1.get_unchecked_mut(0) = i as i32 + 1;
for (j, c2) in ca2.iter().enumerate() {
<…>
SafetyNet "Basic Integrity" c Magisk и microG должен успешно проходиться, коли microG и DroidGuard Helper находятся в priv-app (например, через модуль Magisk systemize), и Magisk Hide использован на нужном приложении.
Но если стоит Xposed Framework, нужный для подмены подписи через FakeGapps, то тогда нет, basicIntegrity не пройдёт.
Если хочешь, вот что я сравнивал (15 000):
Получив:
А размеры…
С указательной арифметикой? Ну жуть же!
Обрати внимание на
-gcflags=-B
.Да, всё так, без отключения проверок границ (что в коде сделать нельзя, к сожалению) было бы сильно хуже.
Это вообще буквально до замера всё делается.
Не влияет ну совсем.
Похоже, что V8 от Math.min, наоборот, получает выигрыш.
Э-хэм…
Numba – это что-то невероятное…
У меня оно не получилось быстрее C, но оно справилось быстрее Julia.
Clang++ даёт хорошие результаты, если использовать range-based for или если вместо
std::string
сравнивать прямо элементы C-массива (.c_str())
.Не знаю, насколько это близко к описанной проблеме, но что-то явно очень медленно при использовании оператора
[]
уstd::string
.Не хочу комментировать, что 0xd34df00d намерял с C++, но ведь с D именно так оно и есть уже.
Можно было бы ещё LDC приложить, ведь он быстрее DMD справился с сей задачей.
Действительно, так быстрее.
SafetyNet "Basic Integrity" c Magisk и microG должен успешно проходиться, коли microG и DroidGuard Helper находятся в priv-app (например, через модуль Magisk systemize), и Magisk Hide использован на нужном приложении.
Но если стоит Xposed Framework, нужный для подмены подписи через FakeGapps, то тогда нет, basicIntegrity не пройдёт.