<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Performance on YarFullStack</title>
    <link>https://yarfullstack.com/tags/performance/</link>
    <description>Recent content in Performance on YarFullStack</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru-ru</language>
    <copyright>© 2020 OlegAxenow. &lt;a href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34; rel=&#34;nofollow noopener noreferrer&#34; class=&#34;mb-ml&#34; target=&#34;_blank&#34;&gt;Some rights reserved.&lt;/a&gt;</copyright>
    <lastBuildDate>Mon, 03 Aug 2020 18:27:27 +0300</lastBuildDate>
    
	<atom:link href="https://yarfullstack.com/tags/performance/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Небольшое исследование BitOperations и последовательностей де Брёйна</title>
      <link>https://yarfullstack.com/post/2020-08/dotnet-core-bitoperations-and-de-bruijn/</link>
      <pubDate>Mon, 03 Aug 2020 18:27:27 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2020-08/dotnet-core-bitoperations-and-de-bruijn/</guid>
      <description>&lt;p&gt;Давно я сюда не писал, обходился Telegram и Twitter, но поля их слишком малы, чтобы вместить эту статью :)&lt;/p&gt;

&lt;p&gt;Для небольшого исследования в области упаковки чисел мне понадобилось получить минимальное количество бит, требуемое для записи числа.
Его, конечно, математически можно получить с помощью двоичного логарифма &amp;ldquo;округлённого к большему целому&amp;rdquo; (буду использовать обозначение &lt;code&gt;lg n&lt;/code&gt;).
Как вы, вероятно, знаете, в .NET Core 3.0 появились intrinsic’и&lt;sup&gt;[1]&lt;/sup&gt;, в частности, &lt;code&gt;LZCNT&lt;/code&gt;. Она, конечно, возвращает leading zeroes,
но вычесть-то из 31 (для индекса в каком-нибудь массиве) или из 32 (для количества бит на число) недолго.
Однако, мне было интересно узнать и универсальное решение. В .NET Core 3.0, к счастью, добавили для этого класс &lt;code&gt;BitOperations&lt;/code&gt;&lt;sup&gt;[2]&lt;/sup&gt;.
А мне, конечно же, захотелось посмотреть его исходники…&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Атрибуты srcset и sizes у картинок</title>
      <link>https://yarfullstack.com/post/2019-02/img-srcset-and-sizes/</link>
      <pubDate>Thu, 07 Feb 2019 22:57:46 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2019-02/img-srcset-and-sizes/</guid>
      <description>&lt;p&gt;Если вы помните, давным давно я &lt;a href=&#34;https://yarfullstack.com/post/2016-11/two-simple-tips-to-make-users-happier/&#34;&gt;писал про srcset и sizes для картинок&lt;/a&gt;.
Эти атрибуты позволяют подсказать браузеру, какие картинки лучше грузить (работают для тэгов &lt;code&gt;img&lt;/code&gt; и &lt;code&gt;picture&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;А сегодня увидел твит, который одной картинкой поясняет принципы работы. И решил напомнить вам эту тему.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Плагины для отображения размера пакетов</title>
      <link>https://yarfullstack.com/post/2018-07/npm-import-cost-plugins/</link>
      <pubDate>Thu, 19 Jul 2018 23:05:00 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2018-07/npm-import-cost-plugins/</guid>
      <description>&lt;p&gt;Недавно узнал, что есть плагин import-cost, показывающий размер импортируемого пакета непосредственно в редакторе.
Есть &lt;a href=&#39;https://github.com/wix/import-cost&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;вариант для Visual Studio Code&lt;/a&gt;,
есть &lt;a href=&#39;https://github.com/denofevil/import-cost&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;для IDE семейства InelliJ&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Авторы &amp;mdash; разные люди. Но делают одно полезное дело. Может, кто-то задумается и не будет тянуть модуль из-за одной простецкой функции :)
&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pipelines и Channel&lt;T&gt;</title>
      <link>https://yarfullstack.com/post/2018-07/net-core-pipelines-and-channel/</link>
      <pubDate>Thu, 12 Jul 2018 23:59:29 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2018-07/net-core-pipelines-and-channel/</guid>
      <description>&lt;p&gt;Недавно вышла статья &lt;a href=&#39;https://blogs.msdn.microsoft.com/dotnet/2018/07/09/system-io-pipelines-high-performance-io-in-net/&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;System.IO.Pipelines: High performance IO in .NET&lt;/a&gt;.
Она про то, как реализовать более наглядную и быструю работу со стримами в .NET Core 2.1.&lt;br /&gt;
От слишком краткого пересказа статья многое потеряет &amp;mdash; читайте оригинал. Ладно, будем честными &amp;mdash; я сегодня подустал, поэтому бегло её прочитал и не очень разбирался :)&lt;/p&gt;

&lt;p&gt;Часть кода из статьи:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>CoreRT</title>
      <link>https://yarfullstack.com/post/2018-06/core-rt/</link>
      <pubDate>Thu, 14 Jun 2018 21:28:14 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2018-06/core-rt/</guid>
      <description>&lt;p&gt;TL&amp;DR;&lt;/p&gt;

&lt;p&gt;CoreRT &amp;mdash; поддержка native code для .NET Core.
Слишком коротко. Ладно, это проект, который делает из сборок для .NET Core машинный код.
И собирает в один файл вместе с рантаймом. Пока альфа.&lt;/p&gt;

&lt;p&gt;Если хотите чуть больше подробностей &amp;mdash; читайте дальше.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Модификатор in, readonly struct и их производительность</title>
      <link>https://yarfullstack.com/post/2018-05/dotnet-readonly-struct-in-modifier-performance/</link>
      <pubDate>Thu, 03 May 2018 23:23:26 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2018-05/dotnet-readonly-struct-in-modifier-performance/</guid>
      <description>&lt;p&gt;В прошлом месяце я писал об &lt;a href=&#34;https://yarfullstack.com/post/2018-04/performance-improvements-in-dotnet-2-1/&#34;&gt;улучшениях производительности в .NET Core 2.1&lt;/a&gt;,
а сегодня расскажу о двух фичах C# 7.2 &amp;mdash; модификаторе &amp;ldquo;in&amp;rdquo; и readonly-структурах.&lt;/p&gt;

&lt;p&gt;Рассказ, как обычно, будет коротким. Но со списком статей для дополнительного изучения :)
Пара статей Сергея Теплякова и мотивировала меня написать этот краткий конспект на русском языке.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Оптимизация производительности в .NET Core 2.1</title>
      <link>https://yarfullstack.com/post/2018-04/performance-improvements-in-dotnet-2-1/</link>
      <pubDate>Thu, 19 Apr 2018 21:33:30 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2018-04/performance-improvements-in-dotnet-2-1/</guid>
      <description>&lt;p&gt;Скоро в свет выйдет &lt;a href=&#39;https://github.com/dotnet/corefx/milestone/12&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;.NET Core 2.1&lt;/a&gt;.
Осталось сделать меньше 1% задач. Конечно, оставшиеся 5% проекта занимают 95% времени, но будем оптимистами :)&lt;/p&gt;

&lt;p&gt;Далее будет краткое резюме статьи &lt;a href=&#39;https://blogs.msdn.microsoft.com/dotnet/2018/04/18/performance-improvements-in-net-core-2-1/&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;Performance Improvements in .NET Core 2.1&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Если вы готовы прочитать эту интересную, но огромную статью &amp;mdash; прочитайте. Я всё-таки пристрастен и расскажу о том, что интересно лично мне.
А если не хотите читать и короткую&amp;hellip;&lt;/p&gt;

&lt;p&gt;TL&amp;DR; Значительно (в 1.5-2 раза) улучшена производительность многих вещей, в том числе:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Структуры (Value types). Это ключевые изменения, многие оптимизации сделаны за счет &lt;code&gt;Span&amp;lt;T&amp;gt;&lt;/code&gt; и &lt;code&gt;Memory&amp;lt;T&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Сравнения. Также оптимизированы &lt;code&gt;сравнения внутри Dictionary&lt;/code&gt; .&lt;/li&gt;
&lt;li&gt;Строки &amp;mdash; оптимизированы не только сравнения, но и такие штуки как ToLower, Format и Parse.&lt;/li&gt;
&lt;li&gt;Потоки, блокировки и &lt;code&gt;async/await&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Socket&lt;/code&gt;, &lt;code&gt;SslStream&lt;/code&gt; и &lt;code&gt;HttpClient&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Далее немного про некоторые оптимизации.
&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Про производительность .NET, React, Regex</title>
      <link>https://yarfullstack.com/post/2017-04/performance-dotnet-react-regex/</link>
      <pubDate>Thu, 27 Apr 2017 23:02:28 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2017-04/performance-dotnet-react-regex/</guid>
      <description>&lt;p&gt;С удовольствием прочитал статью &lt;a href=&#39;https://alexandrnikitin.github.io/blog/high-performance-dotnet-by-example/&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;High-performance .NET by example: Filtering bot traffic&lt;/a&gt;.
Кстати, к ботам статья почти не имеет отношения, а вот к улучшению производительности &amp;mdash; очень даже. В частности,
есть примеры использования BenchmarkDotNet, PerfView, Intel VTune Amplifier, ILSpy, WinDbg и unsafe-кода.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Книга “High Performance Browser Networking” и TCP-прокси для тестирования сети</title>
      <link>https://yarfullstack.com/post/2017-04/network-performance-and-testing/</link>
      <pubDate>Wed, 19 Apr 2017 22:58:14 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2017-04/network-performance-and-testing/</guid>
      <description>&lt;p&gt;Буквально пару слов об online-книге &lt;a href=&#39;https://hpbn.co/#toc&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;High Performance Browser Networking&lt;/a&gt; &amp;mdash;
не читал, но одобряю :) Точнее, посмотрел одну из глав (бегло). Познавательно и по делу.&lt;/p&gt;

&lt;p&gt;А &lt;a href=&#39;https://github.com/shopify/toxiproxy&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;toxiproxy&lt;/a&gt; &amp;mdash; это набор от Shopify для тестирования сети в разнообразных условиях.
Состоит из TCP-прокси (на Go) и клиентских библиотек для подключения (Ruby, Go, Python, .NET, PHP, Node, Java).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Два простых способа сделать пользователей счастливее</title>
      <link>https://yarfullstack.com/post/2016-11/two-simple-tips-to-make-users-happier/</link>
      <pubDate>Sun, 13 Nov 2016 18:32:37 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2016-11/two-simple-tips-to-make-users-happier/</guid>
      <description>&lt;p&gt;Сегодня расскажу про два сравнительно простых способа как сделать ваших пользователей ещё счастливее.&lt;/p&gt;

&lt;p&gt;Как вы уже знаете, мне нравятся быстрые сайты. Летом я уже делился &lt;a href=&#34;https://yarfullstack.com/post/2016-07/site-optimization-tools/&#34;&gt;набором инструментов для оптимизации сайтов&lt;/a&gt;.
Однако, есть пара несложных приёмов, первый из которых эти инструменты вряд ли когда-нибудь догадаются посоветовать.&lt;/p&gt;

&lt;p&gt;Начнём с самого простого в &lt;em&gt;реализации&lt;/em&gt; способа.
Его &lt;em&gt;внедрение,&lt;/em&gt; правда, может отнять у вас много времени на этапе согласования в компании или с участниками вашей команды.
&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Улучшаем производительность npm-install нестандартным способом</title>
      <link>https://yarfullstack.com/post/2016-08/improve-npm-performance-with-progress-bar/</link>
      <pubDate>Sat, 06 Aug 2016 15:04:54 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2016-08/improve-npm-performance-with-progress-bar/</guid>
      <description>&lt;p&gt;В последнее время всё чаще сталкиваюсь с разработкой на node.js.
На работе использую версию LTS, по понятным причинам. Дома поставил 6.3.1.&lt;/p&gt;

&lt;p&gt;Идеологически мне больше нравится третий npm &amp;mdash; всё-таки хранить дубликаты модулей, особенно когда их много &amp;mdash; не здорово.
Кстати, для старой версии ноды есть &lt;a href=&#39;https://www.npmjs.com/package/npm3&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;модуль npm3&lt;/a&gt; &amp;mdash; позволяет
(в лучших традициях партизан) использовать новый npm при установленном старом (только команды будут npm3 install и т.п.). Но сегодня речь не об этом.
&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Uber-Postgres&#43;MySQL</title>
      <link>https://yarfullstack.com/post/2016-07/uber-postgres&#43;mysql/</link>
      <pubDate>Fri, 29 Jul 2016 12:26:04 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2016-07/uber-postgres&#43;mysql/</guid>
      <description>&lt;p&gt;На этой неделе прочитал интереснейшую статью от инженеров Uber: &lt;a href=&#39;https://eng.uber.com/mysql-migration/&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;Why Uber Engineering Switched from Postgres to MySQL&lt;/a&gt;.
Ayende, чуть позже, написал &lt;a href=&#39;https://ayende.com/blog/175137/re-why-uber-engineering-switched-from-postgres-to-mysql&#39; rel=&#34;nofollow noopener noreferrer&#34; target=&#34;_blank&#34;&gt;неплохие комментарии по этой теме&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Инструменты оптимизация сайтов (в основном, скорости загрузки)</title>
      <link>https://yarfullstack.com/post/2016-07/site-optimization-tools/</link>
      <pubDate>Fri, 01 Jul 2016 13:18:17 +0300</pubDate>
      
      <guid>https://yarfullstack.com/post/2016-07/site-optimization-tools/</guid>
      <description>&lt;p&gt;Сегодня поделюсь набором инструментов для оптимизации сайтов. Это больше про скорость, чем про SEO, хотя и для SEO там тоже есть много полезного.
К счастью, поисковики начали учитывать заодно и скорость загрузки сайтов при индексации.&lt;/p&gt;

&lt;p&gt;Да, вероятно я перфекционист, однако я не могу спокойно смотреть на мегабайтные картинки и сайты, загружающиеся дольше секунды при нормальном соединении.
Правда, этот сайт я пока не оптимизировал на все 100%, но в этом случае я рисковал начать писать сюда в следующем году :)
&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>