Как стать автором
Обновить
87
0

Open source contributor

Отправить сообщение

Ух ты. А кодген покажете? Там нужно в моем бенчмарке раскомментить DisassemblyDiagnoser, а потом посмотреть Artifacts папку

А еще я смотрю у вас Линукс, на нем может по-другому такие вещи работать (я на винде). Интересно посмотреть кодген!

Проводил эксперименты на x64 шестом дотнете, все ссылки с шарплаба тоже настроены x64, хоть там пятый, разницы это не дало (в коде бенчмарка я закомментил аттрибут DisassemblyDiagnoser, с которым вы можете посмотреть именно тот асм, который гоняет бенчмарк)

Кстати, интересно то, что если поставить Default на шарплабе, т. е. 32-битный рантайм, то мы в последнем эксперименте получили бы:

    L0007: add eax, edx
    L0009: mov edx, [ebp+0x10]
    L000c: add edx, [ebp+0xc]
    L000f: mov [ebp+0x10], edx
    L0012: cmp edx, [ebp+8]
    L0015: jne short L0007

Так что... используйте 64 бита! :)

А еще можно попробовать включить Dynamic PGO, запустив бенчмарк так:

dotnet run -c release --envVars DOTNET_TieredPGO:1 DOTNET_ReadyToRun:0 DOTNET_TC_QuickJitForLoops:1

Но у меня получились те же результаты, что и в статье, так что я решил оставить это в комментарии.

А сейчас как? Я не так давно здесь, но меня тоже пригласил участник

Окей, водянистое вступление прочитал, а где статья?

Во-первых это, конечно, есть в документации. Во-вторых, синтаксис валуетуплов это сахар

Да, это фича начиная с шестого дотнета (возможно в седьмом превью уже есть, не помню)

А еще не забываем про класс NativeMemory, который, как несложно догадаться, аллоцирует именно нативно (в частности, можем аллоцировать выровненную (aligned) память с помощью NativeMemory.AllocAligned)

Это единственное, чем он связан. Это не среда разработки, а текстовый редактор, развиваемый коммьюнити. А то может при случае на винду пожаловаться? Или гитхаб? Владелец-то тот же.

Вот бы они отключили локализацию нахрен. Тогда прям уважение будет

А, неправильно прочитал. Понял, спасибо

То, что Xamarin бегает на Моно — я вижу. А есть где подтверждение о том, что MAUI на Mono?

Так мы по сути так и сделали, что вы имеете ввиду?

Settings -> Pages, там будет секция Custom domain, там указываете свой. А в настройках домена нужно создать запись, которая баиндит ваш домен к ip yourusername.github.io. Кстати с кастомным доменом не нужен будет тот костыль с заменой '/'

Да, не хостинг не имеет значения, именно поэтому статья о github pages, очень удобном хостинге для подобных задач. Можно буквально наделать себе программок на все случаи жизни).

многопоточностью

О да, этого не хватает. Могут завести к седьмому или восьмому дотнету. Жду. Я хоть и не вебдев, и не особо люблю, но признаю, клепать проженьки для себя и других настолько легко приятно даже мне. Тем более, что если что, можно взять домен (купить или даже добыть бесплатно) и повесить на github pages.

Я на vs22 таргетю на ns2.0

Задача ровно та же самая, переиспользование кода.

Нет! Наследование не для этого, оно нужно для бранчинга. Я искренне не понимаю, откуда вообще взялось это Композиция против Наследования, это вообще разные вещи. Переиспользование и модульность — это к композиции, а абстракции и бранчинг — наследование, вообще НЕ пересекающиеся вещи.

Подтверждаю. Ранаем код автора


import decimal

def formulaFibWithDecimal(n):
    decimal.getcontext().prec = 10000

    root_5 = decimal.Decimal(5).sqrt()
    phi = ((1 + root_5) / 2)

    a = ((phi ** n) - ((-phi) ** -n)) / root_5

    return round(a)

def iterativeFib(n):
    a, b = 0, 1

    for i in range(n):
        a, b = b, a + b

    return a

naive = iterativeFib(1_000_000)
smart = formulaFibWithDecimal(1_000_000)
print(f"Last 10 digits of the naive approach: {str(naive)[-10:]}")
print(f"Last 10 digits of the smart approach: {str(smart)[-10:]}")

Аутпут:


Last 10 digits of the naive approach: 8242546875
Last 10 digits of the smart approach: 0000000000

Если я нигде не ошибся, статья — мусор, даже непонятно, какую причину для минуса выбирать.

Еще почему-то эта статья на хабре конченно работает. На опере вообще не загружается, а на файрфоксе ооочень медленно работает. Странно.

Делал через матрицы. Мое исполнение:
https://dotnetfiddle.net/CiBDN0

Ну а посчитай десятимиллионное число. Или стамиллионное. Будешь вечность ждать

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность