Notice: file_put_contents(): Write of 13837 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 4096 of 17933 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Эшу быдлокодит@eshu_coding P.131
ESHU_CODING Telegram 131
Диссертационный проект - это ПО для микроскопа. Нужно на лету обрабатывать поток изображений, представленных в виде массивов чисел (double). Одно из потенциальных узких по производительности мест - скорость копирования данных из массива в массив.

Для того, чтобы определить оптимальный способ копирования, плюс померять некоторые другие параметры я использовал инструмент BenchmarkDotNet 0.12.1. На картинках представлены результаты замеров для массива размером 1000х2000.

По таблицам в иллюстрациях:
CreateNew - замер скорости создания массива
AllItemIter - замер скорости обхода всего массива с присвоением значений.
Clone - замер скорости копирования всего массива с сипользованием стандартного метода Clone()
CopyByItem - замер скорости копирования всех элементов в созданный пустой массив с автоопределением размеров массива
CopyByItemExistSizes -замер скорости копирования всех элементов в созданный пустой массив без автоопределения размеров массива

Недавно вышел релиз платформы .Net 5.0, проводил замеры для нее и прошлой версии - .Net Core 3.1.

Итого, результаты теста:
1. Клонирование массива - самый быстрый вариант. При переходе с .Net Core 3.1 на 5 версию его ускорили в 3(!) раза!
2. Автоопределение размеров массива с помощью метода GetUpperBound() - плохая идея, пустая трата вычислительных ресурсов.
3. При переходе на новую версию в принципе все действия над массивами были чуть ускорены.

Код бенчмарка прикладываю в файле ниже.
#csharp #диссер



tgoop.com/eshu_coding/131
Create:
Last Update:

Диссертационный проект - это ПО для микроскопа. Нужно на лету обрабатывать поток изображений, представленных в виде массивов чисел (double). Одно из потенциальных узких по производительности мест - скорость копирования данных из массива в массив.

Для того, чтобы определить оптимальный способ копирования, плюс померять некоторые другие параметры я использовал инструмент BenchmarkDotNet 0.12.1. На картинках представлены результаты замеров для массива размером 1000х2000.

По таблицам в иллюстрациях:
CreateNew - замер скорости создания массива
AllItemIter - замер скорости обхода всего массива с присвоением значений.
Clone - замер скорости копирования всего массива с сипользованием стандартного метода Clone()
CopyByItem - замер скорости копирования всех элементов в созданный пустой массив с автоопределением размеров массива
CopyByItemExistSizes -замер скорости копирования всех элементов в созданный пустой массив без автоопределения размеров массива

Недавно вышел релиз платформы .Net 5.0, проводил замеры для нее и прошлой версии - .Net Core 3.1.

Итого, результаты теста:
1. Клонирование массива - самый быстрый вариант. При переходе с .Net Core 3.1 на 5 версию его ускорили в 3(!) раза!
2. Автоопределение размеров массива с помощью метода GetUpperBound() - плохая идея, пустая трата вычислительных ресурсов.
3. При переходе на новую версию в принципе все действия над массивами были чуть ускорены.

Код бенчмарка прикладываю в файле ниже.
#csharp #диссер

BY Эшу быдлокодит




Share with your friend now:
tgoop.com/eshu_coding/131

View MORE
Open in Telegram


Telegram News

Date: |

How to create a business channel on Telegram? (Tutorial) Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN. To delete a channel with over 1,000 subscribers, you need to contact user support The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: According to media reports, the privacy watchdog was considering “blacklisting” some online platforms that have repeatedly posted doxxing information, with sources saying most messages were shared on Telegram.
from us


Telegram Эшу быдлокодит
FROM American