По умолчанию, при передаче в метод или при возврате из метода, экземпляры значимых типов копируются, когда как экземпляры ссылочных типов передаются по ссылке. В 2008 году была выпущена книга «Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries». В этой книге рекомендовалосьЧитать полностью »
Рубрика «benchmark»
Правило 16 байт: развенчиваем миф о производительности структур в C#
2024-03-04 в 7:00, admin, рубрики: .net, benchmark, C#Тесты новейшего процессора Loongson 3A6000
2024-01-04 в 17:59, admin, рубрики: benchmark, loongarch, loongson, бенчмаркиНедавно был представлен 8-ядерный процессор следующего Loongson 3A6000 на базе ядра LA664, а знакомый энтузиаст смог приобрести плату на данном процессоре (модель процессора LS3A6000-HV и чипсет LS7A2000).
Улучшенный benchstat для оптимизирующих гоферов
2022-12-03 в 16:04, admin, рубрики: benchcmp, benchmark, benchstat, Go, golang, performance, высокая производительность, ПрограммированиеПривет!
Если вы писали бенчмарки и пытались понять, что там ускорилось и на сколько, то наверняка вы пользовались утилитами вроде benchstat.
Мне очень нравится эта утилита, но временами я понимаю, что некоторые её особенности работают против меня. Сегодня я расскажу вам о своей обёртке над benchstat, которая добавляет улучшения, полезные в моей работе.
Исследование производительности свободных хранилищ LINSTOR, Ceph, Mayastor и Vitastor в Kubernetes
2022-05-05 в 6:27, admin, рубрики: benchmark, ceph, deckhouse, devops, drbd, kubernetes, Linstor, mayastor, open source, SDS, vitastor, Блог компании Флант, производительность, хранилища данныхКажется, это уже стало традицией: каждый раз, когда я выхожу на новое рабочее место, моя деятельность начинается с бенчмарков различных SDS-решений. Мой приход во «Флант» не стал исключением. Я попал в команду разработки Kubernetes-платформы Deckhouse, где решили развивать возможность запуска виртуальных машин в Kubernetes. Но для этого сначала потребовалось найти простое и надежное хранилище блочного типа, которое можно предложить клиентам платформы.
Go: Должен ли я использовать указатель вместо копии моей структуры?
2020-03-01 в 13:18, admin, рубрики: benchmark, Go, heap, memory, pointer, stack, Программирование
Иллюстрация, созданная для «A Journey With Go», из оригинального гофера, созданного Рене Френч.
С точки зрения производительности систематическое использование указателей вместо копирования самой структуры для совместного использования структур многим Go разработчикам представляется наилучшим вариантом. Для того чтобы понять влияние использования указателя вместо копии структуры мы рассмотрим два варианта использования.Читать полностью »
Уменьшение времени отклика при передаче данных по UDP
2020-02-25 в 14:46, admin, рубрики: benchmark, embox, latency, udp, Блог компании Embox, программирование микроконтроллеров, системное программированиеПривет! В этой статье я хочу рассказать о решении одной из типичных проблем, с которой Embox справляется лучше GNU/Linux. Речь идет о времени реакции на пакет, переданный по протоколу Ethernet. Как известно, основной характеристикой передачи данных по сети является пропускная способность, и с ней у GNU/Linux все хорошо. Но когда речь заходит об уменьшении времени на прием/передачу единичного сетевого пакета, могут возникнуть проблемы. В частности, у заказчика была плата DE0-Nano-SoC с Linux, и с помощью этой платы хотелось управлять неким объектом по сети. Топология сети — точка-точка, никаких роутеров и хабов нет. По модели управления время реакции должно быть меньше 100 мкс, а на базе Linux удавалось добиться только 500 мкс.
.NET Core vs Framework. Производительность коллекций
2020-02-03 в 11:07, admin, рубрики: .net, benchmark, BenchmarkDotNet, C#, net framework
Релиз .NET Core 3.1 — хороший повод мигрировать свой проект с Framework на Core. Во-первых, это отполированная версия с долгосрочной поддержкой (LTS), т.е. её можно смело использовать в продакшене. Во-вторых, в третьей версии добавили поддержку WPF и WinForms, так что теперь появилась возможность мигрировать и десктопные приложения.
Мне стало интересно, какой прирост производительности можно ожидать от Core в самых базовых классах, которые максимально часто используются в коде. Например, коллекции List, Array и Dictionary.
Если вам тоже интересно, как и почему изменилась производительность основных коллекций в Core 3 — прошу под кат! Читать полностью »
Сравнительное тестирование работы PostgreSQL с большими страницами Linux
2019-07-05 в 10:00, admin, рубрики: benchmark, kernel, linux, postgresql, Настройка LinuxЯдро Linux предоставляет широкий спектр параметров конфигурации, которые могут повлиять на производительность. Это все о получении правильной конфигурации для вашего приложения и рабочей нагрузки. Как и любая другая база данных, PostgreSQL использует ядро Linux для оптимальной конфигурации. Плохо настроенные параметры могут привести к снижению производительности. Поэтому важно, чтобы вы измеряли производительность базы данных после каждого сеанса настройки, чтобы избежать снижения производительности. В одной из моих предыдущих публикаций, «Настройка параметров ядра Linux для оптимизации PostgreSQL», я описал некоторые наиболее полезные параметры ядра Linux и то, как они могут помочь вам повысить производительность базы данных. Теперь я собираюсь поделиться своими результатами тестов после настройки больших страниц Linux с другой рабочей нагрузкой PostgreSQL. Я выполнил исчерпывающий набор тестов для разных размеров загрузки PostgreSQL и одновременного количества клиентов.
Машина для тестирования
- Supermicro server:
- Intel® Xeon® CPU E5-2683 v3 @ 2.00GHz
- 2 sockets / 28 cores / 56 threads
- Memory: 256GB of RAM
- Storage: SAMSUNG SM863 1.9TB Enterprise SSD
- Filesystem: ext4/xfs
- OS: Ubuntu 16.04.4, kernel 4.13.0-36-generic
- PostgreSQL: version 11
Сравнительное тестирование PostgreSQL на FreeBSD, CentOS, Ubuntu Debian и openSUSE
2019-06-29 в 11:16, admin, рубрики: benchmark, highload, postgresql, перевод с английскогоДанная статья является переводом оригинальной статьи Martin Kováčik «PostgreSQL benchmark on FreeBSD, CentOS, Ubuntu Debian and openSUSE» https://redbyte.eu/en/blog/postgresql-benchmark-freebsd-centos-ubuntu-debian-opensuse/ В ней рассматриваются тесты СУБД PostgreSQL 10.1 в приближенных к реальным условиям средах на различных unix-системах
Перевод
В этом посте я собираюсь показать результаты тестов недавно выпущенного PostgreSQL 10.1. Я проверил БД на этих ОС (все 64-битные):
- Ubuntu 16.04, ядро 4.10.0-38-generic
- openSUSE 42.3, ядро 4.4.87-25-default
- CentOS 7.4, ядро 3.10.0-693.2.2.el7.x86_64
- Debian 9.2, ядро 4.9.0-4-amd64
- FreeBSD 11.1
Бенчмарк потребления ЦП для Istio и Linkerd
2019-05-23 в 14:12, admin, рубрики: benchmark, devops, Istio, linkerd, service mesh, Блог компании Southbridge, Серверное администрирование, системное администрирование
Введение
Мы в Shopify занялись развертыванием Istio в качестве service mesh. В принципе все устраивает, кроме одной вещи: это дорого.
В опубликованных бенчмарках для Istio говорится:
С Istio 1.1 прокси потребляет примерно 0,6 vCPU (виртуальных ядер) на 1000 запросов в секунду.
Для первого региона в service mesh (по 2 прокси с каждой стороны соединения) у нас будет 1200 ядер только для прокси, из расчета один миллион запросов в секунду. Согласно калькулятору стоимости от Google получается примерно $40/месяц/ядро для конфигурации n1-standard-64
, то есть один этот регион будет стоить нам больше 50 тыс. долларов в месяц за 1 млн запросов в секунду.
Айвен Сим (Ivan Sim) наглядно сравнил задержки service mesh в прошлом году и обещал то же самое для памяти и процессора, но не получилось:
Судя по всему, values-istio-test.yaml серьезно увеличит запросы к процессору. Если я все правильно посчитал, нужно примерно 24 процессорных ядра для панели управления и 0,5 ЦП для каждого прокси. У меня столько нету. Я повторю тесты, когда мне выделят больше ресурсов.
Я хотел сам убедиться, насколько показатели Istio схожи с другой service mesh с открытым кодом: Linkerd.