{"id":491248,"date":"2026-08-18T07:43:03","date_gmt":"2026-08-18T07:43:03","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=491248"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2026-08-18T07:43:03","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=491248","title":{"rendered":"\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e: Where \u043f\u0435\u0440\u0435\u0434 Skip \u2014 \u0438 \u043c\u0435\u0442\u043e\u0434 \u0432 1323 \u0440\u0430\u0437\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434, \u0435\u0441\u043b\u0438 Where \u0441\u0442\u043e\u0438\u0442 \u043f\u0435\u0440\u0435\u0434 Skip \u2014 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0432\u044b\u0432\u043e\u0434\u044b.<\/p>\n<p>\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e \u0434\u0435\u043b\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 Skip \u0438 Take. \u041f\u043e\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 Skip \u043d\u0435\u0442 Where, LINQ \u0431\u0435\u0440\u0451\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u0421 Where \u2014 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0435, \u0438 \u0442\u0430\u043a \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.<\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0435\u043c\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>Array_Where_Select \u2014 Where \u0438 Select, \u043f\u043e\u0442\u043e\u043c Skip \u0438 Take;<\/p>\n<\/li>\n<li>\n<p>Array_Where_NoSelect \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0431\u0435\u0437 Select;<\/p>\n<\/li>\n<li>\n<p>Array_Take_Then_Where \u2014 Skip \u0438 Take \u043f\u0435\u0440\u0435\u0434 Where;<\/p>\n<\/li>\n<li>\n<p>Range_Select \u0438 List_Select \u2014 \u0431\u0435\u0437 Where;<\/p>\n<\/li>\n<li>\n<p>Range_ToArray \u2014 ToArray \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0434\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443;<\/p>\n<\/li>\n<li>\n<p>Array_ByIndex \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0431\u0435\u0437 LINQ.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0411\u0443\u0434\u0435\u0442 3 \u0438\u0441\u0442\u043e\u0440\u0438\u0438:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0432\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 Where \u043f\u0435\u0440\u0435\u0434 Skip \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u043c\u0435\u0442\u043e\u0434;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430: \u043a\u0430\u043a \u0435\u0451 \u043d\u043e\u043c\u0435\u0440 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0445\u0443\u0436\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u043c\u0435\u0440\u044b \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>CPU<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u042f\u0434\u0440\u0430\/\u043f\u043e\u0442\u043e\u043a\u0438<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u0427\u0430\u0441\u0442\u043e\u0442\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u041e\u0421<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21161<\/p>\n<\/td>\n<td>\n<p align=\"center\">AMD Ryzen 9 5950X<\/p>\n<\/td>\n<td>\n<p align=\"center\">16 \/ 32<\/p>\n<\/td>\n<td>\n<p align=\"center\">3,4 \u0413\u0413\u0446, \u0434\u043e 4,9 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"center\">Windows 10 1809<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21162<\/p>\n<\/td>\n<td>\n<p align=\"center\">Intel Core i9-10900KF<\/p>\n<\/td>\n<td>\n<p align=\"center\">10 \/ 20<\/p>\n<\/td>\n<td>\n<p align=\"center\">3,7 \u0413\u0413\u0446, \u0434\u043e 5,3 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"center\">Windows 10 22H2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21163<\/p>\n<\/td>\n<td>\n<p align=\"center\">2 \u00d7 Intel Xeon Silver 4314<\/p>\n<\/td>\n<td>\n<p align=\"center\">2\u00d716 \/ 64<\/p>\n<\/td>\n<td>\n<p align=\"center\">2,4 \u0413\u0413\u0446, \u0434\u043e 3,4 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"center\">Windows Server 2022<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21164<\/p>\n<\/td>\n<td>\n<p align=\"center\">Intel Xeon W-2255<\/p>\n<\/td>\n<td>\n<p align=\"center\">10 \/ 20<\/p>\n<\/td>\n<td>\n<p align=\"center\">3,7 \u0413\u0413\u0446, \u0434\u043e 4,5 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"center\">Windows Server 2022<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>BenchmarkDotNet 0.15.8, \u0441\u0431\u043e\u0440\u043a\u0430 Release. \u041f\u0430\u0442\u0447-\u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u043e\u0432 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0417\u0430\u043c\u0435\u0440\u044b \u0441\u043d\u044f\u0442\u044b \u043d\u0430 .NET 8, .NET 9, .NET 10 \u0438 .NET 11.<\/p>\n<h2>\u0418\u0441\u0442\u043e\u0440\u0438\u044f 1. Where \u043f\u0435\u0440\u0435\u0434 Skip<\/h2>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u2014 157 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u0441\u0435\u0433\u043e 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f:<\/p>\n<pre><code class=\"cs\">\/\/ SizeOptLinqProof, Subjects.cspublic static long PagesFromWhere(int[] data){    IEnumerable&lt;int&gt; source = data.Where(static x =&gt; x &gt;= 0).Select(Value);    long sum = 0;    int pages = PageCount(data.Length);      for (int page = 0; page &lt; pages; page++)    {        int[] block = source.Skip(page * PageSize).Take(PageSize).ToArray();        for (int i = 0; i &lt; block.Length; i++)        {            sum += block[i];        }    }    return sum;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Where \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0442\u0430\u043a, \u0447\u0442\u043e \u043d\u0435 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430: \u0432\u0441\u0435 \u0441\u0435\u043c\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u0441\u0443\u043c\u043c\u0443. \u041f\u0435\u0440\u0435\u0434 \u043a\u0430\u0436\u0434\u044b\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043e\u0442\u0447\u0451\u0442 checks.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0421\u043f\u043e\u0441\u043e\u0431<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21161 Ryzen<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21162 i9<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21163 2\u00d7Xeon Silver<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21164 Xeon W<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Array_Where_Select<\/p>\n<\/td>\n<td>\n<p align=\"center\">172,068<\/p>\n<\/td>\n<td>\n<p align=\"center\">171,961<\/p>\n<\/td>\n<td>\n<p align=\"center\">252,846<\/p>\n<\/td>\n<td>\n<p align=\"center\">259,505<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Array_Where_NoSelect<\/p>\n<\/td>\n<td>\n<p align=\"center\">226,298<\/p>\n<\/td>\n<td>\n<p align=\"center\">204,699<\/p>\n<\/td>\n<td>\n<p align=\"center\">329,007<\/p>\n<\/td>\n<td>\n<p align=\"center\">437,143<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Array_Take_Then_Where<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,654<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,608<\/p>\n<\/td>\n<td>\n<p align=\"center\">1,047<\/p>\n<\/td>\n<td>\n<p align=\"center\">1,006<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Range_Select<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,545<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,361<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,615<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,612<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">List_Select<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,415<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,374<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,636<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,639<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Range_ToArray<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,452<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,399<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,689<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,619<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Array_ByIndex<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,157<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,130<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,247<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,200<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><em>\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, .NET 10: \u0441 Where \u043f\u0435\u0440\u0435\u0434 Skip \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0432 1024\u20131323 \u0440\u0430\u0437\u0430, \u0447\u0435\u043c \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443<\/em><\/p>\n<p>\u041c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0432 1096 \u0440\u0430\u0437 \u043d\u0430 Ryzen 5950X, \u0432 1323 \u043d\u0430 i9-10900KF, \u0432 1024 \u043d\u0430 2 \u00d7 Xeon Silver 4314, \u0432 1298 \u043d\u0430 Xeon W-2255.<\/p>\n<p>\u0414\u0435\u043b\u043e \u043d\u0435 \u0432 Select. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u0435 \u0436\u0435 \u0442\u0440\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430: 1332\u20132186 \u0440\u0430\u0437 \u043f\u0440\u043e\u0442\u0438\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c \u0432 0,130\u20131,047 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<p>\u041e\u0442\u0447\u0451\u0442 types \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0441\u043e\u0437\u0434\u0430\u0451\u0442 LINQ \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435:<\/p>\n<pre><code class=\"cs\">; SizeOptLinqProof, dotnet run -c Release -f net10.0 -- types; Results\/Comp_2\/types_net10.0.txt\u0417\u0430\u043f\u0440\u043e\u0441                            \u0422\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u043b LINQRange().Select()                  RangeSelectIteratorRange().Select().Skip(157)        RangeSelectIteratorList.Select()                     ListSelectIteratorList.Select().Skip(157)           IListSkipTakeSelectIteratorArray.Where().Select()            ArrayWhereSelectIteratorArray.Where().Select().Skip(157)  IEnumerableSkipTakeIteratorArray.Where().Skip(157)           IEnumerableSkipTakeIteratorArray.Skip(157).Take(157)         IListSkipTakeIteratorArray.Skip(157).Take(157).Where() IEnumerableWhereIterator<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 List.Select() \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f IListSkipTakeSelectIterator, \u043f\u043e\u0441\u043b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u2014 IListSkipTakeIterator. \u041e\u0431\u0430 \u0431\u0435\u0440\u0443\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041f\u043e\u0441\u043b\u0435 Where \u0432 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u0442\u043e\u0438\u0442 <a href=\"https:\/\/github.com\/dotnet\/runtime\/blob\/release\/10.0\/src\/libraries\/System.Linq\/src\/System\/Linq\/Iterator.SpeedOpt.cs\" rel=\"noopener noreferrer nofollow\">IEnumerableSkipTakeIterator<\/a>, \u0430 \u043e\u043d \u0438\u0449\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c.<\/p>\n<h2>\u0418\u0441\u0442\u043e\u0440\u0438\u044f 2. \u041e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430<\/h2>\n<p>\u041f\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0432\u043b\u0438\u044f\u0435\u0442 \u043b\u0438 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0412\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043c\u0435\u0440 \u0431\u0435\u0440\u0451\u0442 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u0437 \u0442\u0435\u0445 \u0436\u0435 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435, \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u043c\u0435\u0440.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u0411\u0435\u0437 Where<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u0421 Where<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u0412\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"center\">367,7 \u043d\u0441<\/p>\n<\/td>\n<td>\n<p align=\"center\">569,2 \u043d\u0441<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u00d71,5<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">500<\/p>\n<\/td>\n<td>\n<p align=\"center\">403,4 \u043d\u0441<\/p>\n<\/td>\n<td>\n<p align=\"center\">157 229,8 \u043d\u0441<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u00d7390<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">999<\/p>\n<\/td>\n<td>\n<p align=\"center\">367,8 \u043d\u0441<\/p>\n<\/td>\n<td>\n<p align=\"center\">343 591,2 \u043d\u0441<\/p>\n<\/td>\n<td>\n<p align=\"center\">\u00d7934<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><em>\u041d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, i9-10900KF, .NET 10: \u0431\u0435\u0437 Where \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442, \u0441 Where \u2014 \u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u0442\u0435\u043c \u0434\u043e\u043b\u044c\u0448\u0435<\/em><\/p>\n<p>\u041d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u0447\u0435\u0433\u043e \u2014 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432\u0441\u0435\u0433\u043e \u0432 1,5 \u0440\u0430\u0437\u0430. \u041d\u0430 500-\u0439 \u0443\u0436\u0435 \u0432 390 \u0440\u0430\u0437, \u043d\u0430 999-\u0439 \u0432 934. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0438 \u043c\u0430\u0448\u0438\u043d\u044b \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u0442\u0430\u043a \u0436\u0435: 324 731, 513 495 \u0438 457 082 \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 367\u2013644 \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434 \u0431\u0435\u0437 Where \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u043f\u043e \u0432\u0441\u0435\u043c \u0447\u0435\u0442\u044b\u0440\u0451\u043c \u043c\u0430\u0448\u0438\u043d\u0430\u043c.<\/p>\n<p>\u041a\u043e\u043b\u043e\u043d\u043a\u0430 Allocated \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f: 816 \u0431\u0430\u0439\u0442 \u043d\u0430 0-\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0438 872 \u043d\u0430 999-\u0439 \u0443 \u043e\u0431\u043e\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432.<\/p>\n<p>\u041e\u0442\u0441\u044e\u0434\u0430 \u0438 \u0446\u0438\u0444\u0440\u044b \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439, \u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 1000:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0421\u0442\u0440\u0430\u043d\u0438\u0446<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21161 Ryzen<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21162 i9<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21163 2\u00d7Xeon Silver<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>\u21164 Xeon W<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">100, \u0441 Where<\/p>\n<\/td>\n<td>\n<p align=\"center\">2,010<\/p>\n<\/td>\n<td>\n<p align=\"center\">1,977<\/p>\n<\/td>\n<td>\n<p align=\"center\">2,884<\/p>\n<\/td>\n<td>\n<p align=\"center\">3,089<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">300, \u0441 Where<\/p>\n<\/td>\n<td>\n<p align=\"center\">14,709<\/p>\n<\/td>\n<td>\n<p align=\"center\">15,561<\/p>\n<\/td>\n<td>\n<p align=\"center\">23,091<\/p>\n<\/td>\n<td>\n<p align=\"center\">25,187<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1000, \u0441 Where<\/p>\n<\/td>\n<td>\n<p align=\"center\">172,068<\/p>\n<\/td>\n<td>\n<p align=\"center\">171,961<\/p>\n<\/td>\n<td>\n<p align=\"center\">252,846<\/p>\n<\/td>\n<td>\n<p align=\"center\">259,505<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">100, \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,018<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,014<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,026<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,023<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1000, \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,157<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,130<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,247<\/p>\n<\/td>\n<td>\n<p align=\"center\">0,200<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><em>\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0441 Where \u043f\u0435\u0440\u0435\u0434 Skip \u0438 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e, .NET 10: \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 3 \u0440\u0430\u0437\u0430 \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 7,3\u20138,2 \u0440\u0430\u0437\u0430, \u0430 \u043d\u0430 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043f\u0440\u043e\u0442\u0438\u0432 100 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0443\u0436\u0435 \u0432 84\u201388 \u0440\u0430\u0437<\/em><\/p>\n<h2>\u0418\u0441\u0442\u043e\u0440\u0438\u044f 3. \u0422\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443<\/h2>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a. Skip \u0438 Take \u0438\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434 Where:<\/p>\n<pre><code class=\"cs\">\/\/ SizeOptLinqProof, Subjects.csint[] block = data    .Skip(page * PageSize)    .Take(PageSize)    .Where(static x =&gt; x &gt;= 0)    .Select(Value)    .ToArray();<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0411\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 241\u2013283 \u0440\u0430\u0437\u0430: 0,608\u20131,047 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043f\u0440\u043e\u0442\u0438\u0432 172\u2013260. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043c\u0435\u043d\u044f\u0435\u0442 \u0438 \u0441\u043c\u044b\u0441\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u0430: Where \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0430 \u043d\u0435 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0443. \u041f\u043e\u043a\u0430 Where \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u0437\u0430\u043c\u0435\u0440\u0435, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u0442 \u0436\u0435.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u0432\u044b\u0437\u0432\u0430\u0442\u044c ToArray \u0434\u043e \u0446\u0438\u043a\u043b\u0430, \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u0411\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 367\u2013431 \u0440\u0430\u0437\u0430, \u043d\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0445\u043e\u0434\u0438\u0442 1254 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 805 \u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441 Where \u2014 \u043f\u043e \u043a\u043e\u043b\u043e\u043d\u043a\u0435 Allocated \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 BenchmarkDotNet.<\/p>\n<p>\u0422\u0440\u0435\u0442\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u043d\u0435 \u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0447\u0435\u0440\u0435\u0437 LINQ. Array_ByIndex \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u0442\u0440\u0430\u0442\u0438\u0442 0,130\u20130,247 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0435\u0449\u0451 <a href=\"https:\/\/github.com\/dotnet\/runtime\/pull\/111743\" rel=\"noopener noreferrer nofollow\">System.Linq.Enumerable.IsSizeOptimized<\/a> \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u043e\u0431\u044a\u0451\u043c \u043a\u043e\u0434\u0430 LINQ. \u0412 runtimeconfig.json \u0435\u0451 \u043f\u0438\u0448\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e UseSizeOptimizedLinq, \u0430 \u0435\u0433\u043e \u0441\u0442\u0430\u0432\u0438\u0442 SDK \u043f\u0440\u0438 PublishAot=true. <a href=\"https:\/\/github.com\/dotnet\/android\/issues\/10422\" rel=\"noopener noreferrer nofollow\">Android SDK<\/a> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041e\u0442\u0447\u0451\u0442 switch \u0447\u0438\u0442\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438\u0437 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0430\u043c System.Linq:<\/p>\n<pre><code class=\"cs\">; SizeOptLinqProof, bin\\SizeOpt\\net10.0\\SizeOptLinqProof.exe switch; Results\/Comp_2\/switch_net10.0_sizeopt.txtRuntime: 10.0.11System.Linq.Enumerable.IsSizeOptimized    \u0437\u0430\u0434\u0430\u043d \u0432 runtimeconfig: True    \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:              True    \u0432\u0438\u0434\u0438\u0442 System.Linq:     True\u0422\u0438\u043f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 Range().Select(): SizeOptIListSelectIterator<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421 \u043d\u0435\u0439 \u043c\u0435\u0442\u043e\u0434 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0432 1,55\u20134,09 \u0440\u0430\u0437\u0430. \u041c\u0435\u043d\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0435\u0440\u044f\u0435\u0442 Array_Where_Select \u2014 1,55\u20132,03, \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e List_Select \u2014 3,55\u20134,09. \u0423 Array_ByIndex \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435\u0442 \u2014 0,99\u20131,10, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0440 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442. \u0412 .NET 8 \u0438 .NET 9 \u044d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0435\u0442, \u0438 \u043e\u0442\u0447\u0451\u0442 switch \u0442\u0430\u043a \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442: \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442: \u0442\u0438\u043f LINQ \u0442\u043e\u0442 \u0436\u0435, \u0441\u0447\u0451\u0442 \u0438\u0434\u0451\u0442 \u043d\u0430 \u0442\u0435 \u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u2014 1,31\u20131,37 \u0440\u0430\u0437\u0430, \u043c\u0435\u0436\u0434\u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u2014 \u0442\u0440\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041c\u0430\u0448\u0438\u043d\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>.NET 8<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>.NET 9<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>.NET 10<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>.NET 11<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21161 Ryzen 5950X<\/p>\n<\/td>\n<td>\n<p align=\"center\">198,2<\/p>\n<\/td>\n<td>\n<p align=\"center\">144,9<\/p>\n<\/td>\n<td>\n<p align=\"center\">172,1<\/p>\n<\/td>\n<td>\n<p align=\"center\">165,8<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21162 i9-10900KF<\/p>\n<\/td>\n<td>\n<p align=\"center\">204,8<\/p>\n<\/td>\n<td>\n<p align=\"center\">172,5<\/p>\n<\/td>\n<td>\n<p align=\"center\">172,0<\/p>\n<\/td>\n<td>\n<p align=\"center\">156,9<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21163 2\u00d7Xeon Silver<\/p>\n<\/td>\n<td>\n<p align=\"center\">343,0<\/p>\n<\/td>\n<td>\n<p align=\"center\">283,0<\/p>\n<\/td>\n<td>\n<p align=\"center\">252,8<\/p>\n<\/td>\n<td>\n<p align=\"center\">256,5<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u21164 Xeon W-2255<\/p>\n<\/td>\n<td>\n<p align=\"center\">347,0<\/p>\n<\/td>\n<td>\n<p align=\"center\">264,9<\/p>\n<\/td>\n<td>\n<p align=\"center\">259,5<\/p>\n<\/td>\n<td>\n<p align=\"center\">300,1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><em>\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0441 Where \u043f\u0435\u0440\u0435\u0434 Skip \u043d\u0430 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430\u0445 \u0442\u0435 \u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u0440\u043e\u0442\u0438\u0432 0,130\u20130,247 \u0443 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443<\/em><\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<h4>\u041f\u043e \u0446\u0438\u0444\u0440\u0430\u043c:<\/h4>\n<ul>\n<li>\n<p>Where \u043f\u0435\u0440\u0435\u0434 Skip \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 1024\u20131323 \u0440\u0430\u0437\u0430 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u2014 \u043d\u0430 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0435\u0437 Select \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u2014 \u0432 1332\u20132186 \u0440\u0430\u0437, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0435\u043b\u043e \u043d\u0435 \u0432 Select;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0435\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0435\u0451 \u043d\u043e\u043c\u0435\u0440: 569 \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0430 0-\u0439, 157 230 \u043d\u0430 500-\u0439, 343 591 \u043d\u0430 999-\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 3 \u0440\u0430\u0437\u0430 \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 7,3\u20138,2 \u0440\u0430\u0437\u0430, \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 10 \u0440\u0430\u0437 \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 84\u201388 \u0440\u0430\u0437;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b: 816 \u0431\u0430\u0439\u0442 \u043d\u0430 0-\u0439, 872 \u043d\u0430 999-\u0439;<\/p>\n<\/li>\n<li>\n<p>Skip \u0438 Take \u043f\u0435\u0440\u0435\u0434 Where \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0432 241\u2013283 \u0440\u0430\u0437\u0430, ToArray \u0434\u043e \u0446\u0438\u043a\u043b\u0430 \u2014 \u0432 367\u2013431, \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u2014 \u0432 1024\u20131323;<\/p>\n<\/li>\n<li>\n<p>UseSizeOptimizedLinq \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u0432 1,55\u20134,09 \u0440\u0430\u0437\u0430, \u0430 \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 .NET 8, .NET 9, .NET 10 \u0438 .NET 11 \u0441\u0447\u0451\u0442 \u0438\u0434\u0451\u0442 \u043d\u0430 \u0442\u0435 \u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434: 144,9\u2013347,0 \u043f\u0440\u043e\u0442\u0438\u0432 0,130\u20130,247 \u0443 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435:<\/h4>\n<ul>\n<li>\n<p>\u0435\u0441\u043b\u0438 Where \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0441\u0442\u0430\u0432\u044c\u0442\u0435 Skip \u0438 Take \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c: \u0442\u043e\u0433\u0434\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443, \u0430 Where \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 157 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \u0432\u043c\u0435\u0441\u0442\u043e 157 000;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 Where \u0434\u043e\u043b\u0436\u0435\u043d \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043d\u0430\u0431\u043e\u0440, \u0432\u044b\u0437\u043e\u0432\u0438\u0442\u0435 ToArray \u0434\u043e \u0446\u0438\u043a\u043b\u0430 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u2014 \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0439\u0434\u0451\u0442 \u0431\u043e\u043b\u044c\u0448\u0435, \u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0435\u043d\u044c\u0448\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0432\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 query.Skip(1).GetType().Name: IListSkipTakeIterator \u0438 IListSkipTakeSelectIterator \u0431\u0435\u0440\u0443\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443, IEnumerableSkipTakeIterator \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442;  <\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 1 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u0430, \u043d\u0430 100 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043e\u043d\u0430 \u0443\u0436\u0435 111\u2013141 \u0440\u0430\u0437, \u043d\u0430 1000 \u2014 1024\u20131323;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043b\u0438 PublishAot: \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c SDK \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 UseSizeOptimizedLinq, \u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442\u0441\u044f \u0432 1,55\u20134,09 \u0440\u0430\u0437\u0430. \u041f\u043e\u0434 Android \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<\/li>\n<\/ul>\n<h2>\u041a\u043e\u0434 \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/ComboxSoftDeveloper\/SizeOptLinqProof\" rel=\"noopener noreferrer nofollow\">SizeOptLinqProof<\/a> \u2014 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438, \u043f\u0440\u043e\u0433\u043e\u043d\u044b \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0438 \u043e\u0442\u0447\u0451\u0442\u044b \u043f\u043e \u0442\u0438\u043f\u0430\u043c LINQ<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/issues\/115033\" rel=\"noopener noreferrer nofollow\">dotnet\/runtime#115033 \u2014 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0440<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/pull\/111743\" rel=\"noopener noreferrer nofollow\">dotnet\/runtime#111743 \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 UseSizeOptimizedLinq<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/android\/issues\/10422\" rel=\"noopener noreferrer nofollow\">dotnet\/android#10422 \u2014 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/blob\/release\/10.0\/src\/libraries\/System.Linq\/src\/System\/Linq\/Iterator.SpeedOpt.cs\" rel=\"noopener noreferrer nofollow\">Iterator.SpeedOpt.cs \u0432 dotnet\/runtime, \u0432\u0435\u0442\u043a\u0430 release\/10.0<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0412\u0441\u0435\u043c \u0443\u0434\u0430\u0447\u0438 \u0438 \u0434\u043e \u043d\u043e\u0432\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447!<\/strong><\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1071514\/\">https:\/\/habr.com\/ru\/articles\/1071514\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0423\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434, \u0435\u0441\u043b\u0438 Where \u0441\u0442\u043e\u0438\u0442 \u043f\u0435\u0440\u0435\u0434 Skip \u2014 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0432\u044b\u0432\u043e\u0434\u044b.\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e \u0434\u0435\u043b\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 Skip \u0438 Take. \u041f\u043e\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 Skip \u043d\u0435\u0442 Where, LINQ \u0431\u0435\u0440\u0451\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u0421 Where \u2014 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0435, \u0438 \u0442\u0430\u043a \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0435\u043c\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432:Array_Where_Select \u2014 Where \u0438 Select, \u043f\u043e\u0442\u043e\u043c Skip \u0438 Take;Array_Where_NoSelect \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0431\u0435\u0437 Select;Array_Take_Then_Where \u2014 Skip \u0438 Take \u043f\u0435\u0440\u0435\u0434 Where;Range_Select \u0438 List_Select \u2014 \u0431\u0435\u0437 Where;Range_ToArray \u2014 ToArray \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0434\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443;Array_ByIndex \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0431\u0435\u0437 LINQ.\u0411\u0443\u0434\u0435\u0442 3 \u0438\u0441\u0442\u043e\u0440\u0438\u0438:\u0432\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 Where \u043f\u0435\u0440\u0435\u0434 Skip \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u043c\u0435\u0442\u043e\u0434;\u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430: \u043a\u0430\u043a \u0435\u0451 \u043d\u043e\u043c\u0435\u0440 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f;\u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0445\u0443\u0436\u0435.\u0417\u0430\u043c\u0435\u0440\u044b \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445:\u2116CPU\u042f\u0434\u0440\u0430\/\u043f\u043e\u0442\u043e\u043a\u0438\u0427\u0430\u0441\u0442\u043e\u0442\u0430\u041e\u0421\u21161AMD Ryzen 9 5950X16 \/ 323,4 \u0413\u0413\u0446, \u0434\u043e 4,9 \u0432 \u0442\u0443\u0440\u0431\u043eWindows 10 1809\u21162Intel Core i9-10900KF10 \/ 203,7 \u0413\u0413\u0446, \u0434\u043e 5,3 \u0432 \u0442\u0443\u0440\u0431\u043eWindows 10 22H2\u211632 \u00d7 Intel Xeon Silver 43142\u00d716 \/ 642,4 \u0413\u0413\u0446, \u0434\u043e 3,4 \u0432 \u0442\u0443\u0440\u0431\u043eWindows Server 2022\u21164Intel Xeon W-225510 \/ 203,7 \u0413\u0413\u0446, \u0434\u043e 4,5 \u0432 \u0442\u0443\u0440\u0431\u043eWindows Server 2022BenchmarkDotNet 0.15.8, \u0441\u0431\u043e\u0440\u043a\u0430 Release. \u041f\u0430\u0442\u0447-\u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u043e\u0432 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0417\u0430\u043c\u0435\u0440\u044b \u0441\u043d\u044f\u0442\u044b \u043d\u0430 .NET 8, .NET 9, .NET 10 \u0438 .NET 11.\u0418\u0441\u0442\u043e\u0440\u0438\u044f 1. Where \u043f\u0435\u0440\u0435\u0434 Skip\u041c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u2014 157 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u0441\u0435\u0433\u043e 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f:\/\/ SizeOptLinqProof, Subjects.cspublic static long PagesFromWhere(int[] data){    IEnumerable&lt;int&gt; source = data.Where(static x =&gt; x &gt;= 0).Select(Value);    long sum = 0;    int pages = PageCount(data.Length);      for (int page = 0; page &lt; pages; page++)    {        int[] block = source.Skip(page * PageSize).Take(PageSize).ToArray();        for (int i = 0; i &lt; block.Length; i++)        {            sum += block[i];        }    }    return sum;}Where \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0442\u0430\u043a, \u0447\u0442\u043e \u043d\u0435 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430: \u0432\u0441\u0435 \u0441\u0435\u043c\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u0441\u0443\u043c\u043c\u0443. \u041f\u0435\u0440\u0435\u0434 \u043a\u0430\u0436\u0434\u044b\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043e\u0442\u0447\u0451\u0442 checks.\u0421\u043f\u043e\u0441\u043e\u0431\u21161 Ryzen\u21162 i9\u21163 2\u00d7Xeon Silver\u21164 Xeon WArray_Where_Select172,068171,961252,846259,505Array_Where_NoSelect226,298204,699329,007437,143Array_Take_Then_Where0,6540,6081,0471,006Range_Select0,5450,3610,6150,612List_Select0,4150,3740,6360,639Range_ToArray0,4520,3990,6890,619Array_ByIndex0,1570,1300,2470,200\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, .NET 10: \u0441 Where \u043f\u0435\u0440\u0435\u0434 Skip \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0432 1024\u20131323 \u0440\u0430\u0437\u0430, \u0447\u0435\u043c \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443\u041c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0432 1096 \u0440\u0430\u0437 \u043d\u0430 Ryzen 5950X, \u0432 1323 \u043d\u0430 i9-10900KF, \u0432 1024 \u043d\u0430 2 \u00d7 Xeon Silver 4314, \u0432 1298 \u043d\u0430 Xeon W-2255.\u0414\u0435\u043b\u043e \u043d\u0435 \u0432 Select. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u0435 \u0436\u0435 \u0442\u0440\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430: 1332\u20132186 \u0440\u0430\u0437 \u043f\u0440\u043e\u0442\u0438\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c \u0432 0,130\u20131,047 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.\u041e\u0442\u0447\u0451\u0442 types \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0441\u043e\u0437\u0434\u0430\u0451\u0442 LINQ \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435:; SizeOptLinqProof, dotnet run -c Release -f net10.0 &#8212; types; Results\/Comp_2\/types_net10.0.txt\u0417\u0430\u043f\u0440\u043e\u0441                            \u0422\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u043b LINQRange().Select()                  RangeSelectIteratorRange().Select().Skip(157)        RangeSelectIteratorList.Select()                     ListSelectIteratorList.Select().Skip(157)           IListSkipTakeSelectIteratorArray.Where().Select()            ArrayWhereSelectIteratorArray.Where().Select().Skip(157)  IEnumerableSkipTakeIteratorArray.Where().Skip(157)           IEnumerableSkipTakeIteratorArray.Skip(157).Take(157)         IListSkipTakeIteratorArray.Skip(157).Take(157).Where() IEnumerableWhereIterator\u041f\u043e\u0441\u043b\u0435 List.Select() \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f IListSkipTakeSelectIterator, \u043f\u043e\u0441\u043b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u2014 IListSkipTakeIterator. \u041e\u0431\u0430 \u0431\u0435\u0440\u0443\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041f\u043e\u0441\u043b\u0435 Where \u0432 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u0442\u043e\u0438\u0442 IEnumerableSkipTakeIterator, \u0430 \u043e\u043d \u0438\u0449\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c.\u0418\u0441\u0442\u043e\u0440\u0438\u044f 2. \u041e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u041f\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0432\u043b\u0438\u044f\u0435\u0442 \u043b\u0438 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0412\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043c\u0435\u0440 \u0431\u0435\u0440\u0451\u0442 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u0437 \u0442\u0435\u0445 \u0436\u0435 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435, \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u043c\u0435\u0440.\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0411\u0435\u0437 Where\u0421 Where\u0412\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u04370367,7 \u043d\u0441569,2 \u043d\u0441\u00d71,5500403,4 \u043d\u0441157 229,8 \u043d\u0441\u00d7390999367,8 \u043d\u0441343 591,2 \u043d\u0441\u00d7934\u041d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, i9-10900KF, .NET 10: \u0431\u0435\u0437 Where \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442, \u0441 Where \u2014 \u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u0442\u0435\u043c \u0434\u043e\u043b\u044c\u0448\u0435\u041d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u0447\u0435\u0433\u043e \u2014 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432\u0441\u0435\u0433\u043e \u0432 1,5 \u0440\u0430\u0437\u0430. \u041d\u0430 500-\u0439 \u0443\u0436\u0435 \u0432 390 \u0440\u0430\u0437, \u043d\u0430 999-\u0439 \u0432 934. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0438 \u043c\u0430\u0448\u0438\u043d\u044b \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u0442\u0430\u043a \u0436\u0435: 324 731, 513 495 \u0438 457 082 \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 367\u2013644 \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434 \u0431\u0435\u0437 Where \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u043f\u043e \u0432\u0441\u0435\u043c \u0447\u0435\u0442\u044b\u0440\u0451\u043c \u043c\u0430\u0448\u0438\u043d\u0430\u043c.\u041a\u043e\u043b\u043e\u043d\u043a\u0430 Allocated \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f: 816 \u0431\u0430\u0439\u0442 \u043d\u0430 0-\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0438 872 \u043d\u0430 999-\u0439 \u0443 \u043e\u0431\u043e\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432.\u041e\u0442\u0441\u044e\u0434\u0430 \u0438 \u0446\u0438\u0444\u0440\u044b \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439, \u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 1000:\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u21161 Ryzen\u21162 i9\u21163 2\u00d7Xeon Silver\u21164 Xeon W100, \u0441 Where2,0101,9772,8843,089300, \u0441 Where14,70915,56123,09125,1871000, \u0441 Where172,068171,961252,846259,505100, \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u04430,0180,0140,0260,0231000, \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u04430,1570,1300,2470,200\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0441 Where \u043f\u0435\u0440\u0435\u0434 Skip \u0438 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e, .NET 10: \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 3 \u0440\u0430\u0437\u0430 \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 7,3\u20138,2 \u0440\u0430\u0437\u0430, \u0430 \u043d\u0430 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043f\u0440\u043e\u0442\u0438\u0432 100 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0443\u0436\u0435 \u0432 84\u201388 \u0440\u0430\u0437\u0418\u0441\u0442\u043e\u0440\u0438\u044f 3. \u0422\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443\u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a. Skip \u0438 Take \u0438\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434 Where:\/\/ SizeOptLinqProof, Subjects.csint[] block = data    .Skip(page * PageSize)    .Take(PageSize)    .Where(static x =&gt; x &gt;= 0)    .Select(Value)    .ToArray();\u0411\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 241\u2013283 \u0440\u0430\u0437\u0430: 0,608\u20131,047 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043f\u0440\u043e\u0442\u0438\u0432 172\u2013260. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043c\u0435\u043d\u044f\u0435\u0442 \u0438 \u0441\u043c\u044b\u0441\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u0430: Where \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0430 \u043d\u0435 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0443. \u041f\u043e\u043a\u0430 Where \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u0437\u0430\u043c\u0435\u0440\u0435, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u0442 \u0436\u0435.\u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u0432\u044b\u0437\u0432\u0430\u0442\u044c ToArray \u0434\u043e \u0446\u0438\u043a\u043b\u0430, \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u0411\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 367\u2013431 \u0440\u0430\u0437\u0430, \u043d\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0445\u043e\u0434\u0438\u0442 1254 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 805 \u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441 Where \u2014 \u043f\u043e \u043a\u043e\u043b\u043e\u043d\u043a\u0435 Allocated \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 BenchmarkDotNet.\u0422\u0440\u0435\u0442\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2014 \u043d\u0435 \u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0447\u0435\u0440\u0435\u0437 LINQ. Array_ByIndex \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u0442\u0440\u0430\u0442\u0438\u0442 0,130\u20130,247 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.\u0415\u0441\u0442\u044c \u0435\u0449\u0451 System.Linq.Enumerable.IsSizeOptimized \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u043e\u0431\u044a\u0451\u043c \u043a\u043e\u0434\u0430 LINQ. \u0412 runtimeconfig.json \u0435\u0451 \u043f\u0438\u0448\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e UseSizeOptimizedLinq, \u0430 \u0435\u0433\u043e \u0441\u0442\u0430\u0432\u0438\u0442 SDK \u043f\u0440\u0438 PublishAot=true. Android SDK \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041e\u0442\u0447\u0451\u0442 switch \u0447\u0438\u0442\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438\u0437 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0430\u043c System.Linq:; SizeOptLinqProof, bin\\SizeOpt\\net10.0\\SizeOptLinqProof.exe switch; Results\/Comp_2\/switch_net10.0_sizeopt.txtRuntime: 10.0.11System.Linq.Enumerable.IsSizeOptimized    \u0437\u0430\u0434\u0430\u043d \u0432 runtimeconfig: True    \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:              True    \u0432\u0438\u0434\u0438\u0442 System.Linq:     True\u0422\u0438\u043f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 Range().Select(): SizeOptIListSelectIterator\u0421 \u043d\u0435\u0439 \u043c\u0435\u0442\u043e\u0434 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0432 1,55\u20134,09 \u0440\u0430\u0437\u0430. \u041c\u0435\u043d\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0435\u0440\u044f\u0435\u0442 Array_Where_Select \u2014 1,55\u20132,03, \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e List_Select \u2014 3,55\u20134,09. \u0423 Array_ByIndex \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435\u0442 \u2014 0,99\u20131,10, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0440 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442. \u0412 .NET 8 \u0438 .NET 9 \u044d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0435\u0442, \u0438 \u043e\u0442\u0447\u0451\u0442 switch \u0442\u0430\u043a \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442: \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0440\u0430\u043d\u0442\u0430\u0439\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442: \u0442\u0438\u043f LINQ \u0442\u043e\u0442 \u0436\u0435, \u0441\u0447\u0451\u0442 \u0438\u0434\u0451\u0442 \u043d\u0430 \u0442\u0435 \u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u2014 1,31\u20131,37 \u0440\u0430\u0437\u0430, \u043c\u0435\u0436\u0434\u0443 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u2014 \u0442\u0440\u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430:\u041c\u0430\u0448\u0438\u043d\u0430.NET 8.NET 9.NET 10.NET 11\u21161 Ryzen 5950X198,2144,9172,1165,8\u21162 i9-10900KF204,8172,5172,0156,9\u21163 2\u00d7Xeon Silver343,0283,0252,8256,5\u21164 Xeon W-2255347,0264,9259,5300,1\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0441 Where \u043f\u0435\u0440\u0435\u0434 Skip \u043d\u0430 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432: \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430\u0445 \u0442\u0435 \u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u0440\u043e\u0442\u0438\u0432 0,130\u20130,247 \u0443 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443\u0412\u044b\u0432\u043e\u0434\u044b\u041f\u043e \u0446\u0438\u0444\u0440\u0430\u043c:Where \u043f\u0435\u0440\u0435\u0434 Skip \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 1024\u20131323 \u0440\u0430\u0437\u0430 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u2014 \u043d\u0430 157 000 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 1000 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445;\u0431\u0435\u0437 Select \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u2014 \u0432 1332\u20132186 \u0440\u0430\u0437, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0435\u043b\u043e \u043d\u0435 \u0432 Select;\u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0435\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0435\u0451 \u043d\u043e\u043c\u0435\u0440: 569 \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0430 0-\u0439, 157 230 \u043d\u0430 500-\u0439, 343 591 \u043d\u0430 999-\u0439;\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 3 \u0440\u0430\u0437\u0430 \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 7,3\u20138,2 \u0440\u0430\u0437\u0430, \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 10 \u0440\u0430\u0437 \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 84\u201388 \u0440\u0430\u0437;\u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b: 816 \u0431\u0430\u0439\u0442 \u043d\u0430 0-\u0439, 872 \u043d\u0430 999-\u0439;Skip \u0438 Take \u043f\u0435\u0440\u0435\u0434 Where \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0432 241\u2013283 \u0440\u0430\u0437\u0430, ToArray \u0434\u043e \u0446\u0438\u043a\u043b\u0430 \u2014 \u0432 367\u2013431, \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u2014 \u0432 1024\u20131323;UseSizeOptimizedLinq \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u0432 1,55\u20134,09 \u0440\u0430\u0437\u0430, \u0430 \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442;\u043d\u0430 .NET 8, .NET 9, .NET 10 \u0438 .NET 11 \u0441\u0447\u0451\u0442 \u0438\u0434\u0451\u0442 \u043d\u0430 \u0442\u0435 \u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434: 144,9\u2013347,0 \u043f\u0440\u043e\u0442\u0438\u0432 0,130\u20130,247 \u0443 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443.\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435:\u0435\u0441\u043b\u0438 Where \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0441\u0442\u0430\u0432\u044c\u0442\u0435 Skip \u0438 Take \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c: \u0442\u043e\u0433\u0434\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443, \u0430 Where \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 157 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \u0432\u043c\u0435\u0441\u0442\u043e 157 000;\u0435\u0441\u043b\u0438 Where \u0434\u043e\u043b\u0436\u0435\u043d \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043d\u0430\u0431\u043e\u0440, \u0432\u044b\u0437\u043e\u0432\u0438\u0442\u0435 ToArray \u0434\u043e \u0446\u0438\u043a\u043b\u0430 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u2014 \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0439\u0434\u0451\u0442 \u0431\u043e\u043b\u044c\u0448\u0435, \u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0435\u043d\u044c\u0448\u0435;\u0441\u0432\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 query.Skip(1).GetType().Name: IListSkipTakeIterator \u0438 IListSkipTakeSelectIterator \u0431\u0435\u0440\u0443\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443, IEnumerableSkipTakeIterator \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442;  \u043d\u0430 1 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u0430, \u043d\u0430 100 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043e\u043d\u0430 \u0443\u0436\u0435 111\u2013141 \u0440\u0430\u0437, \u043d\u0430 1000 \u2014 1024\u20131323;\u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043b\u0438 PublishAot: \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c SDK \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 UseSizeOptimizedLinq, \u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442\u0441\u044f \u0432 1,55\u20134,09 \u0440\u0430\u0437\u0430. \u041f\u043e\u0434 Android \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\u041a\u043e\u0434 \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438SizeOptLinqProof \u2014 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438, \u043f\u0440\u043e\u0433\u043e\u043d\u044b \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0438 \u043e\u0442\u0447\u0451\u0442\u044b \u043f\u043e \u0442\u0438\u043f\u0430\u043c LINQ\u0421\u0441\u044b\u043b\u043a\u0438dotnet\/runtime#115033 \u2014 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0440dotnet\/runtime#111743 \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 UseSizeOptimizedLinqdotnet\/android#10422 \u2014 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044eIterator.SpeedOpt.cs \u0432 dotnet\/runtime, \u0432\u0435\u0442\u043a\u0430 release\/10.0\u0412\u0441\u0435\u043c \u0443\u0434\u0430\u0447\u0438 \u0438 \u0434\u043e \u043d\u043e\u0432\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447!\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 https:\/\/habr.com\/ru\/articles\/1071514\/<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-491248","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=491248"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491248\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=491248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=491248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=491248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}