{"id":487757,"date":"2026-07-18T19:52:07","date_gmt":"2026-07-18T19:52:07","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=487757"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=487757","title":{"rendered":"\u0411\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441 LINQ: \u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u221219%, \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u043d\u0430\u043c\u0435\u0440\u0438\u043b +31%"},"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 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 LINQ \u0432 .NET 10 \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 dotnet\/runtime \u0441 \u043b\u0435\u0442\u0430 \u0432\u0438\u0441\u0438\u0442 <a href=\"https:\/\/github.com\/dotnet\/runtime\/issues\/117717\" rel=\"noopener noreferrer nofollow\">issue #117717<\/a>: \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 .NET 10 \u043c\u0435\u0442\u043e\u0434 \u0441 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043f\u0440\u043e\u0441\u0435\u043b \u043a \u0434\u0435\u0432\u044f\u0442\u043a\u0435 \u2014 \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 issue \u043d\u0430 Intel 13-\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f \u0434\u043e 19%, \u0443 \u042d\u043d\u0434\u0438 \u042d\u0439\u0435\u0440\u0441\u0430 \u0438\u0437 JIT-\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 Zen 4 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 10%. \u041f\u0440\u0438\u0447\u0438\u043d\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043b\u0430 \u0441\u0430\u043c\u0430: \u0441\u0432\u044f\u0437\u043a\u0430 PGO \u0438 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043d\u0433\u0430, \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u043e\u0436\u0435 \u043e\u0437\u0432\u0443\u0447\u0438\u043b\u0438: \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0447\u0438\u043d\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u2014 \u0441\u043b\u043e\u043c\u0430\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0435, \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0432 .NET 11. \u0411\u044b\u043b \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u043a\u0441 (<a href=\"https:\/\/github.com\/dotnet\/runtime\/pull\/117816\" rel=\"noopener noreferrer nofollow\">PR #117816<\/a>), \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e issue \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u043a\u0430\u043a <a href=\"https:\/\/github.com\/dotnet\/runtime\/issues\/119425\" rel=\"noopener noreferrer nofollow\">#119425<\/a>. \u0414\u0435\u0441\u044f\u0442\u043a\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c LTS, \u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0445 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0443 \u0438\u043b\u0438 \u0436\u0434\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u0443\u044e.<\/p>\n<p><strong>\u0411\u0443\u0434\u0435\u0442 3 \u0438\u0441\u0442\u043e\u0440\u0438\u0438:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0440\u0435\u0433\u0440\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u0440\u0438\u0448\u0451\u043b \u2014 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445: \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u044b\u0445 \u221219% \u0432\u044b\u0448\u043b\u043e +25\u201332%, \u0438 LINQ-\u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0431\u043e\u0433\u043d\u0430\u043b \u0434\u0430\u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 for;<\/p>\n<\/li>\n<li>\n<p>\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 OSR-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u2014 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0438\u0437 issue, .NET 11 preview \u0438 \u0434\u0438\u0437\u0430\u0441\u043c, \u0433\u0434\u0435 \u043c\u043e\u0439 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 \u0437\u0430\u0438\u043d\u043b\u0430\u0439\u043d\u0435\u043d \u043f\u0440\u044f\u043c\u043e \u0432 \u0442\u0435\u043b\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0442\u043a\u0443\u0434\u0430 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432 \u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 \u2014 \u0438 \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u043e\u0434\u0430, \u0447\u0442\u043e \u0432 issue, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 Count \u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u2014 \u0432 \u0440\u0435\u043f\u043e <a href=\"https:\/\/github.com\/ComboxSoftDeveloper\/LinqFirstProof\" rel=\"noopener noreferrer nofollow\">LinqFirstProof<\/a>. \u041c\u0430\u0448\u0438\u043d\u044b \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/1060470\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e Sum<\/a>:<\/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=\"left\"><strong>CPU<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u042f\u0434\u0440\u0430\/\u043f\u043e\u0442\u043e\u043a\u0438<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0427\u0430\u0441\u0442\u043e\u0442\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>.NET 9<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>.NET 10<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u21161<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">AMD   Ryzen 9 5950X<\/p>\n<\/td>\n<td>\n<p align=\"left\">16   \/ 32<\/p>\n<\/td>\n<td>\n<p align=\"left\">3,4   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 4,9 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.0.15<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.0.5<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u21162<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Intel   Core i9-10900KF<\/p>\n<\/td>\n<td>\n<p align=\"left\">10   \/ 20<\/p>\n<\/td>\n<td>\n<p align=\"left\">3,7   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 5,3 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.0.18<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.0.10<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u21163<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2   \u00d7 Intel Xeon Silver 4314 (Ice Lake)<\/p>\n<\/td>\n<td>\n<p align=\"left\">2\u00d716   \/ 64<\/p>\n<\/td>\n<td>\n<p align=\"left\">2,4   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 3,4 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.0.5<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.0.1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u21164<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Intel   Xeon W-2255 (Cascade Lake)<\/p>\n<\/td>\n<td>\n<p align=\"left\">10   \/ 20<\/p>\n<\/td>\n<td>\n<p align=\"left\">3,7   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 4,5 \u0432 \u0442\u0443\u0440\u0431\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">9.0.4<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.0.1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0418\u0441\u0442\u043e\u0440\u0438\u044f 1. \u0420\u0435\u0433\u0440\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u0440\u0438\u0448\u0451\u043b<\/h3>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0438\u0437 issue \u0432 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0438\u0434\u0435: List \u0438\u0437 1000 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 X \u0438 Y, \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0438 \u0435\u0433\u043e \u043f\u0430\u0440\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0430 \u2014 First \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0435\u0441\u044c \u0441\u043f\u0438\u0441\u043e\u043a. \u041b\u044f\u043c\u0431\u0434\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0435 \u0446\u0435\u043b\u0438, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u0435\u043b\u0430\u0435\u0442 display class \u0438 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u2014 \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e issue \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0420\u044f\u0434\u043e\u043c \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: \u0442\u043e\u0442 \u0436\u0435 \u043f\u043e\u0438\u0441\u043a \u0441\u0432\u043e\u0438\u043c for \u0438 foreach, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u0431\u0435\u0437 \u0437\u0430\u0445\u0432\u0430\u0442\u0430, Count \u0441 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c \u0438 Sum() \u0431\u0435\u0437 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u043a\u0430\u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u0443: \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u0434\u043e \u043c\u043e\u0435\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430 \u043d\u0435 \u0434\u043e\u0435\u0445\u0430\u043b. \u041d\u0430\u043e\u0431\u043e\u0440\u043e\u0442:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/953\/0b6\/378\/9530b6378a1a37af9e835a11bbb5af40.png\" alt=\"First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442): .NET 10 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 25\u201332% \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445\" title=\"First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442): .NET 10 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 25\u201332% \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445\" width=\"1395\" height=\"690\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/953\/0b6\/378\/9530b6378a1a37af9e835a11bbb5af40.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/953\/0b6\/378\/9530b6378a1a37af9e835a11bbb5af40.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442): .NET 10 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 25\u201332% \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u043b\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043f\u043e \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u21162:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/638\/916\/b89\/638916b899e90d96f8210eaf05361a6c.png\" alt=\"\u0412\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b: \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442, \u0441\u0432\u043e\u0438 \u0446\u0438\u043a\u043b\u044b, Count \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 Sum()\" title=\"\u0412\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b: \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442, \u0441\u0432\u043e\u0438 \u0446\u0438\u043a\u043b\u044b, Count \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 Sum()\" width=\"1380\" height=\"585\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/638\/916\/b89\/638916b899e90d96f8210eaf05361a6c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/638\/916\/b89\/638916b899e90d96f8210eaf05361a6c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0412\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b: \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442, \u0441\u0432\u043e\u0438 \u0446\u0438\u043a\u043b\u044b, Count \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 Sum()<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u2014 \u0442\u0440\u0438 \u0444\u0430\u043a\u0442\u0430.<\/p>\n<ol>\n<li>\n<p>First_Linq \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 (349,4 \u043d\u0441) \u043e\u0431\u043e\u0433\u043d\u0430\u043b First_For (445,6 \u043d\u0441), \u0438 \u0442\u0430\u043a \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u2014 \u0440\u0430\u0437\u0440\u044b\u0432 \u043e\u0442 14 \u0434\u043e 40%. \u041f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e Sum \u0443\u0436\u0435 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u044e\u0441\u044c, \u043d\u043e \u0442\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0430 \u0437\u0434\u0435\u0441\u044c \u0447\u0438\u0441\u0442\u0430\u044f \u043f\u043e\u0431\u0435\u0434\u0430 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043d\u0433\u0430: \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0443\u0448\u043b\u043e \u0432\u043d\u0443\u0442\u0440\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u043e span, \u0430 for \u0445\u043e\u0434\u0438\u0442 \u0432 List \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0442\u043e\u0440.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0435\u0432\u044f\u0442\u043a\u0430 \u0443\u0436\u0435 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043b\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442: First_LinqCached \u043d\u0430 .NET 9 \u2014 352,9 \u043d\u0441, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438. \u0410 \u0432\u043e\u0442 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 (507,4 \u043d\u0441) \u0434\u0435\u0432\u044f\u0442\u043a\u0430 \u043d\u0435 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043b\u0430 \u2014 \u0438 \u0440\u0430\u0437\u0440\u044b\u0432 \u043c\u0435\u0436\u0434\u0443 \u00ab\u043b\u044f\u043c\u0431\u0434\u0430 \u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u043c\u00bb \u0438 \u00ab\u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u00bb \u0432 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0430. \u0414\u0435\u0441\u044f\u0442\u043a\u0430 \u0434\u043e\u0443\u0447\u0438\u043b\u0430 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f: 349,4 \u043f\u0440\u043e\u0442\u0438\u0432 347,4 \u2014 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442. \u0422\u0430\u043a \u0447\u0442\u043e +31% \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u2014 \u044d\u0442\u043e \u043d\u0435 \u00abLINQ \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438\u00bb, \u044d\u0442\u043e JIT \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/749\/4ad\/a09\/7494ada095317bac01544eeb2adcd8e9.png\" alt=\"\u0420\u0430\u0437\u0440\u044b\u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0430: \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442\" title=\"\u0420\u0430\u0437\u0440\u044b\u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0430: \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442\" width=\"1260\" height=\"645\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/749\/4ad\/a09\/7494ada095317bac01544eeb2adcd8e9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/749\/4ad\/a09\/7494ada095317bac01544eeb2adcd8e9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0430\u0437\u0440\u044b\u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0430: \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442<\/em><\/figcaption><\/div>\n<\/figure>\n<\/li>\n<li>\n<p>\u041a\u043e\u043b\u043e\u043d\u043a\u0430 Allocated: \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0430\u043b\u043b\u043e\u0446\u0438\u0440\u0443\u0435\u0442 24 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 \u2014 display class \u0441 \u0434\u0432\u0443\u043c\u044f int. \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u2014 \u043d\u043e\u043b\u044c. \u0412 \u0433\u043e\u0440\u044f\u0447\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0434\u043e\u0432\u043e\u0434 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430.<\/p>\n<\/li>\n<\/ol>\n<h3>\u0418\u0441\u0442\u043e\u0440\u0438\u044f 2. \u0422\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 OSR-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439<\/h3>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0432\u044b\u0437\u043e\u0432 \u2014 \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0438\u0437 issue. \u042d\u0439\u0435\u0440\u0441 \u043f\u0440\u044f\u043c\u043e \u043f\u0438\u0441\u0430\u043b, \u0447\u0442\u043e \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u0437\u0430\u0432\u044f\u0437\u0430\u043d \u043d\u0430 OSR: \u0442\u0430\u043c First \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u0432 \u0434\u043b\u0438\u043d\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430, \u0438 \u043c\u0435\u0442\u043e\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 on-stack replacement \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c JIT \u0441\u043e \u0441\u0432\u043e\u0435\u0439 PGO-\u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439. <\/p>\n<p>\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0436\u0443: OsrLinq \u2014 200 000 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 First \u0441 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c \u0432 \u043e\u0434\u043d\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435, \u0440\u044f\u0434\u043e\u043c OsrFor \u0441 \u0442\u0435\u043c \u0436\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0446\u0438\u043a\u043b\u043e\u043c.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9f3\/ec7\/a2d\/9f3ec7a2d4f39193d3afa32619a23bb9.png\" alt=\"OSR-\u0440\u0435\u043f\u0440\u043e: \u00d70,97\u20131,02 \u043a \u0434\u0435\u0432\u044f\u0442\u043a\u0435 \u0443 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438 \u00d70,98\u20131,00 \u0443 \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u043e\u0439 \u2014 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 \u043d\u0435\u0442 \u043d\u0438 \u0442\u0430\u043c, \u043d\u0438 \u0442\u0430\u043c\" title=\"OSR-\u0440\u0435\u043f\u0440\u043e: \u00d70,97\u20131,02 \u043a \u0434\u0435\u0432\u044f\u0442\u043a\u0435 \u0443 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438 \u00d70,98\u20131,00 \u0443 \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u043e\u0439 \u2014 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 \u043d\u0435\u0442 \u043d\u0438 \u0442\u0430\u043c, \u043d\u0438 \u0442\u0430\u043c\" width=\"1395\" height=\"690\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9f3\/ec7\/a2d\/9f3ec7a2d4f39193d3afa32619a23bb9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9f3\/ec7\/a2d\/9f3ec7a2d4f39193d3afa32619a23bb9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>OSR-\u0440\u0435\u043f\u0440\u043e: \u00d70,97\u20131,02 \u043a \u0434\u0435\u0432\u044f\u0442\u043a\u0435 \u0443 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438 \u00d70,98\u20131,00 \u0443 \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u043e\u0439 \u2014 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 \u043d\u0435\u0442 \u043d\u0438 \u0442\u0430\u043c, \u043d\u0438 \u0442\u0430\u043c<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0436\u0435 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u0438\u0437 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u043e\u0432 issue \u043f\u0440\u043e .NET 11: preview \u0438\u0434\u0451\u0442 \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u0434\u0435\u0432\u044f\u0442\u043a\u043e\u0439 \u0438 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0439 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0443: \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u21163 \u0438 \u21164 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f 10.0.1 \u2014 \u043f\u043e\u0447\u0442\u0438 \u0440\u0435\u043b\u0438\u0437\u043d\u0430\u044f \u0434\u0435\u0441\u044f\u0442\u043a\u0430, \u0434\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u043b\u043e \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u00ab\u0443\u0436\u0435 \u0434\u043e\u043f\u0438\u043b\u0438\u043b\u0438 \u043f\u0430\u0442\u0447\u0430\u043c\u0438\u00bb: \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0438 \u0432 \u0440\u0430\u043d\u043d\u0435\u0439 \u0434\u0435\u0441\u044f\u0442\u043a\u0435.<\/p>\n<p>\u0414\u0438\u0437\u0430\u0441\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u043f\u043e\u0447\u0435\u043c\u0443 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b. Tier1-\u0432\u0435\u0440\u0441\u0438\u044f TryGetFirst \u0438\u0437 BCL, \u043c\u0430\u0448\u0438\u043d\u0430 \u21162, .NET 10:<\/p>\n<pre><code class=\"assembly\">; System.Linq.Enumerable:TryGetFirst, Tier1 with Dynamic PGOG_M000_IG26:       mov      r15, gword ptr [rsi+rdx]      ; \u0432\u0437\u044f\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430       test     r15, r15       je       SHORT G_M000_IG25G_M000_IG27:       cmp      dword ptr [r15+0x08], 0xF4243 ; item.X == 1 000 003       jne      SHORT G_M000_IG25G_M000_IG28:       cmp      dword ptr [r15+0x0C], 0xF4261 ; item.Y == 1 000 033       jne      SHORT G_M000_IG25<\/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>\u0412 \u0442\u0435\u043b\u0435 TryGetFirst \u2014 \u043d\u0435 \u0432\u044b\u0437\u043e\u0432 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430, \u0430 \u0441\u0440\u0430\u0437\u0443 \u043c\u043e\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: X \u0441 1 000 003, Y \u0441 1 000 033: PGO \u0443\u0432\u0438\u0434\u0435\u043b \u0434\u043e\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u0438 \u0437\u0430\u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043b \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 \u0447\u0435\u0440\u0435\u0437 guarded devirtualization, \u0432\u044b\u0437\u043e\u0432 Invoke \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0437\u0430\u043f\u0430\u0441\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435. \u0418 \u0442\u0430\u043a\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043d\u0430 9, 10 \u0438 11 \u2014 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 (\u00ab\u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c\u0441\u044f\u00bb) \u0432 \u044d\u0442\u043e\u043c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0435 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0438 \u0440\u0430\u0437\u0443.<\/p>\n<h3>\u0418\u0441\u0442\u043e\u0440\u0438\u044f 3. \u0414\u0432\u0430 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u0430: \u00d710 \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u0438 \u043c\u0438\u043d\u0443\u0441 22% \u043d\u0430 Count<\/h3>\n<p>\u0421 .NET 8 \u043d\u0430 .NET 9 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430 \u2014 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0430 \u043d\u0430 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0434\u0430\u0451\u0442 4 596\u20137 089 \u043d\u0441.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4d6\/aaf\/3e2\/4d6aaf3e28c94c147ef093b72b256451.png\" alt=\"\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430, \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 \u0435\u0449\u0451 25\u201332%    \" title=\"\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430, \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 \u0435\u0449\u0451 25\u201332%    \" width=\"1395\" height=\"690\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4d6\/aaf\/3e2\/4d6aaf3e28c94c147ef093b72b256451.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4d6\/aaf\/3e2\/4d6aaf3e28c94c147ef093b72b256451.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430, \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 \u0435\u0449\u0451 25\u201332%<\/em>    <\/figcaption><\/div>\n<\/figure>\n<p>\u042d\u0442\u043e \u043d\u0435 \u043c\u0430\u0433\u0438\u044f PGO, \u0430 \u0441\u043c\u0435\u043d\u0430 \u043f\u0443\u0442\u0438: \u0432 <a href=\"https:\/\/github.com\/dotnet\/runtime\/blob\/release\/8.0\/src\/libraries\/System.Linq\/src\/System\/Linq\/First.cs\" rel=\"noopener noreferrer nofollow\">First.cs \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438<\/a> TryGetFirst \u0438\u0434\u0451\u0442 foreach-\u0435\u043c \u043f\u043e \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0443, \u0432 <a href=\"https:\/\/github.com\/dotnet\/runtime\/blob\/release\/9.0\/src\/libraries\/System.Linq\/src\/System\/Linq\/First.cs\" rel=\"noopener noreferrer nofollow\">First.cs \u0434\u0435\u0432\u044f\u0442\u043a\u0438<\/a> \u2014 \u043f\u043e span \u0447\u0435\u0440\u0435\u0437 TryGetSpan. \u0412\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u0451\u0440\u0433\u0430\u043b\u0430 MoveNext \u0438 Current \u0447\u0435\u0440\u0435\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440, \u0434\u0435\u0432\u044f\u0442\u043a\u0430 \u0438\u0434\u0451\u0442 \u043f\u043e span \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u2014 \u043e\u0442\u0441\u044e\u0434\u0430 \u0438 \u00d710.<\/p>\n<h4>\u0410 \u0432\u043e\u0442 \u0438 \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0432 First<\/h4>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u041f\u043e\u043a\u0430 First \u0432\u0451\u043b \u0441\u0435\u0431\u044f \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432\u043e, \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437 issue: Count \u0441 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u21164 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u043e\u0442\u0441\u0442\u0430\u043b \u043e\u0442 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 22% \u2014 651,9 \u2192 797,6 \u043d\u0441, StdDev 17 \u0438 25 \u043d\u0441, \u044d\u0442\u043e \u043d\u0435 \u0448\u0443\u043c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0430 \u0442\u0440\u0451\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0442\u043e\u0442 \u0436\u0435 Count \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430 24\u201328%. \u041e\u0434\u0438\u043d \u043c\u0435\u0442\u043e\u0434, \u043e\u0434\u0438\u043d \u043a\u043e\u0434, \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u2014 \u0442\u0440\u0438 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438\u0441\u044c, \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0441\u0435\u043b\u0430.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bbb\/d5c\/73f\/bbbd5c73f8b1a5a56c574bf332e9905c.png\" alt=\"\u0422\u043e\u0442 \u0436\u0435 Count(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0442\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430 24\u201328%, \u043d\u0430 \u21164 \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043d\u0430 22%\" title=\"\u0422\u043e\u0442 \u0436\u0435 Count(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0442\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430 24\u201328%, \u043d\u0430 \u21164 \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043d\u0430 22%\" width=\"1350\" height=\"660\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bbb\/d5c\/73f\/bbbd5c73f8b1a5a56c574bf332e9905c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bbb\/d5c\/73f\/bbbd5c73f8b1a5a56c574bf332e9905c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0422\u043e\u0442 \u0436\u0435 Count(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0442\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430 24\u201328%, \u043d\u0430 \u21164 \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043d\u0430 22%<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u043e\u0434\u0438\u043d \u0432 \u043e\u0434\u0438\u043d \u0441 issue: \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043d\u044b\u0439 LINQ-\u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u043c\u0438\u043d\u0443\u0441 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0432 \u043f\u043b\u044e\u0441\u0435. \u041d\u0435 <strong>\u00ab\u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0441\u043b\u043e\u043c\u0430\u043b\u0430 LINQ\u00bb<\/strong> \u2014 \u0440\u0435\u0448\u0430\u0435\u0442 \u0441\u0432\u044f\u0437\u043a\u0430 PGO \u0438 \u0436\u0435\u043b\u0435\u0437\u0430, \u0438 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 \u043e\u043d\u0430 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0423 \u0430\u0432\u0442\u043e\u0440\u0430 issue \u043d\u0435 \u043f\u043e\u0432\u0435\u0437\u043b\u043e First \u043d\u0430 13-\u043c \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0438, \u0443 \u043c\u0435\u043d\u044f \u2014 Count \u043d\u0430 Cascade Lake.<\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<p><strong>\u041f\u043e \u0446\u0438\u0444\u0440\u0430\u043c:<\/strong><\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u0435\u0449\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0451\u043b\u0441\u044f \u043d\u0438 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435, \u043d\u0438 \u0432 OSR-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0437 issue: \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 25\u201332%, \u0432 OSR \u2014 \u00d70,97\u20131,02;<\/p>\n<\/li>\n<li>\n<p>.NET 11 preview \u0438\u0434\u0451\u0442 \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0439 \u2014 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0430\u043f\u0433\u0440\u0435\u0439\u0434 \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e issue \u043d\u0435\u0437\u0430\u0447\u0435\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430 \u2014 span-\u043f\u0443\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u043e\u0434\u0430, \u0447\u0442\u043e \u0432 issue, \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u0438 \u0443 \u043c\u0435\u043d\u044f: Count \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u21164 \u2014 \u043c\u0438\u043d\u0443\u0441 22% \u043d\u0430 \u0444\u043e\u043d\u0435 \u043f\u043b\u044e\u0441 24\u201328% \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445. \u0414\u0435\u043b\u043e \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435, \u0430 \u043d\u0435 \u0432 .NET 10;<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p>\u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0446\u0438\u043a\u043b \u0440\u0430\u0434\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0437\u0430\u0447\u0435\u043c: \u043d\u0430 .NET 10 \u0441\u0430\u043c First \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0446\u0438\u043a\u043b\u0430 \u2014 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442: \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442 \u0435\u0433\u043e \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043e\u043c. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u043d\u0430 \u2014 \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438: 24 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 \u0443 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0443\u043b\u044f \u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u043e\u0434 \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/ComboxSoftDeveloper\/LinqFirstProof\" rel=\"noopener noreferrer nofollow\">LinqFirstProof<\/a> \u2014 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a (First \u0441 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c \u0438 \u0441 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043e\u043c, \u0441\u0432\u043e\u0438 \u0446\u0438\u043a\u043b\u044b, Count \u0441 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 Sum, OSR-\u0440\u0435\u0436\u0438\u043c, \u0434\u043b\u0438\u043d\u044b 100\/1000\/100000, net8\/9\/10 \u0438 \u0445\u0430\u0440\u043d\u0435\u0441\u0441 \u0434\u043e .NET 11 preview) \u0438 \u0441\u043d\u044f\u0442\u0438\u0435 \u0434\u0438\u0437\u0430\u0441\u043c\u0430 \u0441 \u0436\u0438\u0432\u044b\u043c PGO<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u0441\u044b\u043b\u043a\u0438<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/issues\/117717\" rel=\"noopener noreferrer nofollow\">Issue #117717 \u2014 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0432 .NET 10, \u0440\u0430\u0437\u0431\u043e\u0440 JIT-\u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/issues\/119425\" rel=\"noopener noreferrer nofollow\">Issue #119425 \u2014 \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0444\u0438\u043a\u0441\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/pull\/117816\" rel=\"noopener noreferrer nofollow\">PR #117816 \u2014 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u043a\u0441<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/blob\/release\/8.0\/src\/libraries\/System.Linq\/src\/System\/Linq\/First.cs\" rel=\"noopener noreferrer nofollow\">First.cs \u0432 .NET 8 \u2014 \u043f\u0443\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/dotnet\/runtime\/blob\/release\/9.0\/src\/libraries\/System.Linq\/src\/System\/Linq\/First.cs\" rel=\"noopener noreferrer nofollow\">First.cs \u0432 .NET 9 \u2014 span-\u043f\u0443\u0442\u044c \u0447\u0435\u0440\u0435\u0437 TryGetSpan<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/ComboxSoftDeveloper\/LinqFirstProof\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 LinqFirstProof \u2014 \u043a\u043e\u0434, \u043f\u0440\u043e\u0433\u043e\u043d\u044b \u0438 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0438 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/1060470\/\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e Sum \u2014 \u0442\u0435 \u0436\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u044e\u0436\u0435\u0442: \u0433\u0434\u0435 LINQ \u043e\u0431\u0433\u043e\u043d\u044f\u0435\u0442 \u0446\u0438\u043a\u043b \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438<\/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<blockquote>\n<p><em>PS. \u041f\u043e\u0439\u043c\u0430\u043b\u0438 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u0443 \u0441\u0435\u0431\u044f \u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0438 \u0446\u0438\u0444\u0440\u044b.<\/em><\/p>\n<\/blockquote>\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\/1060518\/\">https:\/\/habr.com\/ru\/articles\/1060518\/<\/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 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 LINQ \u0432 .NET 10 \u2014 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0432\u044b\u0432\u043e\u0434\u044b.\u0412 dotnet\/runtime \u0441 \u043b\u0435\u0442\u0430 \u0432\u0438\u0441\u0438\u0442 issue #117717: \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 .NET 10 \u043c\u0435\u0442\u043e\u0434 \u0441 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043f\u0440\u043e\u0441\u0435\u043b \u043a \u0434\u0435\u0432\u044f\u0442\u043a\u0435 \u2014 \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 issue \u043d\u0430 Intel 13-\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f \u0434\u043e 19%, \u0443 \u042d\u043d\u0434\u0438 \u042d\u0439\u0435\u0440\u0441\u0430 \u0438\u0437 JIT-\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 Zen 4 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 10%. \u041f\u0440\u0438\u0447\u0438\u043d\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043b\u0430 \u0441\u0430\u043c\u0430: \u0441\u0432\u044f\u0437\u043a\u0430 PGO \u0438 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043d\u0433\u0430, \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c\u0441\u044f.\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u043e\u0436\u0435 \u043e\u0437\u0432\u0443\u0447\u0438\u043b\u0438: \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0447\u0438\u043d\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u2014 \u0441\u043b\u043e\u043c\u0430\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0435, \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0432 .NET 11. \u0411\u044b\u043b \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u043a\u0441 (PR #117816), \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e issue \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u043a\u0430\u043a #119425. \u0414\u0435\u0441\u044f\u0442\u043a\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c LTS, \u0438 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0445 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0443 \u0438\u043b\u0438 \u0436\u0434\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u0443\u044e.\u0411\u0443\u0434\u0435\u0442 3 \u0438\u0441\u0442\u043e\u0440\u0438\u0438:\u0440\u0435\u0433\u0440\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u0440\u0438\u0448\u0451\u043b \u2014 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445: \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u0435\u0449\u0430\u043d\u043d\u044b\u0445 \u221219% \u0432\u044b\u0448\u043b\u043e +25\u201332%, \u0438 LINQ-\u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0431\u043e\u0433\u043d\u0430\u043b \u0434\u0430\u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 for;\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 OSR-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u2014 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0438\u0437 issue, .NET 11 preview \u0438 \u0434\u0438\u0437\u0430\u0441\u043c, \u0433\u0434\u0435 \u043c\u043e\u0439 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 \u0437\u0430\u0438\u043d\u043b\u0430\u0439\u043d\u0435\u043d \u043f\u0440\u044f\u043c\u043e \u0432 \u0442\u0435\u043b\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430;\u043e\u0442\u043a\u0443\u0434\u0430 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432 \u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 \u2014 \u0438 \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u043e\u0434\u0430, \u0447\u0442\u043e \u0432 issue, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 Count \u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435.\u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u2014 \u0432 \u0440\u0435\u043f\u043e LinqFirstProof. \u041c\u0430\u0448\u0438\u043d\u044b \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e Sum:\u2116CPU\u042f\u0434\u0440\u0430\/\u043f\u043e\u0442\u043e\u043a\u0438\u0427\u0430\u0441\u0442\u043e\u0442\u0430.NET 9.NET 10\u21161AMD   Ryzen 9 5950X16   \/ 323,4   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 4,9 \u0432 \u0442\u0443\u0440\u0431\u043e9.0.1510.0.5\u21162Intel   Core i9-10900KF10   \/ 203,7   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 5,3 \u0432 \u0442\u0443\u0440\u0431\u043e9.0.1810.0.10\u211632   \u00d7 Intel Xeon Silver 4314 (Ice Lake)2\u00d716   \/ 642,4   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 3,4 \u0432 \u0442\u0443\u0440\u0431\u043e9.0.510.0.1\u21164Intel   Xeon W-2255 (Cascade Lake)10   \/ 203,7   \u0413\u0413\u0446 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438 \u0434\u043e 4,5 \u0432 \u0442\u0443\u0440\u0431\u043e9.0.410.0.1\u0418\u0441\u0442\u043e\u0440\u0438\u044f 1. \u0420\u0435\u0433\u0440\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u0440\u0438\u0448\u0451\u043b\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0438\u0437 issue \u0432 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0438\u0434\u0435: List \u0438\u0437 1000 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 X \u0438 Y, \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0438 \u0435\u0433\u043e \u043f\u0430\u0440\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u0430 \u2014 First \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0435\u0441\u044c \u0441\u043f\u0438\u0441\u043e\u043a. \u041b\u044f\u043c\u0431\u0434\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0435 \u0446\u0435\u043b\u0438, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u0435\u043b\u0430\u0435\u0442 display class \u0438 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u2014 \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e issue \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c\u0441\u044f.\u0420\u044f\u0434\u043e\u043c \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: \u0442\u043e\u0442 \u0436\u0435 \u043f\u043e\u0438\u0441\u043a \u0441\u0432\u043e\u0438\u043c for \u0438 foreach, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u0431\u0435\u0437 \u0437\u0430\u0445\u0432\u0430\u0442\u0430, Count \u0441 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c \u0438 Sum() \u0431\u0435\u0437 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u043a\u0430\u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u0443: \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u0434\u043e \u043c\u043e\u0435\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430 \u043d\u0435 \u0434\u043e\u0435\u0445\u0430\u043b. \u041d\u0430\u043e\u0431\u043e\u0440\u043e\u0442:First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442): .NET 10 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 25\u201332% \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445\u041f\u043e\u043b\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043f\u043e \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u21162:\u0412\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b: \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442, \u0441\u0432\u043e\u0438 \u0446\u0438\u043a\u043b\u044b, Count \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 Sum()\u0418\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u2014 \u0442\u0440\u0438 \u0444\u0430\u043a\u0442\u0430.First_Linq \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 (349,4 \u043d\u0441) \u043e\u0431\u043e\u0433\u043d\u0430\u043b First_For (445,6 \u043d\u0441), \u0438 \u0442\u0430\u043a \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u2014 \u0440\u0430\u0437\u0440\u044b\u0432 \u043e\u0442 14 \u0434\u043e 40%. \u041f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e Sum \u0443\u0436\u0435 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u044e\u0441\u044c, \u043d\u043e \u0442\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0430 \u0437\u0434\u0435\u0441\u044c \u0447\u0438\u0441\u0442\u0430\u044f \u043f\u043e\u0431\u0435\u0434\u0430 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043d\u0433\u0430: \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0443\u0448\u043b\u043e \u0432\u043d\u0443\u0442\u0440\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u043e span, \u0430 for \u0445\u043e\u0434\u0438\u0442 \u0432 List \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0442\u043e\u0440.\u0414\u0435\u0432\u044f\u0442\u043a\u0430 \u0443\u0436\u0435 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043b\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442: First_LinqCached \u043d\u0430 .NET 9 \u2014 352,9 \u043d\u0441, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438. \u0410 \u0432\u043e\u0442 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 (507,4 \u043d\u0441) \u0434\u0435\u0432\u044f\u0442\u043a\u0430 \u043d\u0435 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043b\u0430 \u2014 \u0438 \u0440\u0430\u0437\u0440\u044b\u0432 \u043c\u0435\u0436\u0434\u0443 \u00ab\u043b\u044f\u043c\u0431\u0434\u0430 \u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u043c\u00bb \u0438 \u00ab\u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u00bb \u0432 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0430. \u0414\u0435\u0441\u044f\u0442\u043a\u0430 \u0434\u043e\u0443\u0447\u0438\u043b\u0430 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f: 349,4 \u043f\u0440\u043e\u0442\u0438\u0432 347,4 \u2014 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442. \u0422\u0430\u043a \u0447\u0442\u043e +31% \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u2014 \u044d\u0442\u043e \u043d\u0435 \u00abLINQ \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438\u00bb, \u044d\u0442\u043e JIT \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f.\u0420\u0430\u0437\u0440\u044b\u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0430: \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442\u041a\u043e\u043b\u043e\u043d\u043a\u0430 Allocated: \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0430\u043b\u043b\u043e\u0446\u0438\u0440\u0443\u0435\u0442 24 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 \u2014 display class \u0441 \u0434\u0432\u0443\u043c\u044f int. \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u2014 \u043d\u043e\u043b\u044c. \u0412 \u0433\u043e\u0440\u044f\u0447\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0434\u043e\u0432\u043e\u0434 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430.\u0418\u0441\u0442\u043e\u0440\u0438\u044f 2. \u0422\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 OSR-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0432\u044b\u0437\u043e\u0432 \u2014 \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0438\u0437 issue. \u042d\u0439\u0435\u0440\u0441 \u043f\u0440\u044f\u043c\u043e \u043f\u0438\u0441\u0430\u043b, \u0447\u0442\u043e \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u0437\u0430\u0432\u044f\u0437\u0430\u043d \u043d\u0430 OSR: \u0442\u0430\u043c First \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u0432 \u0434\u043b\u0438\u043d\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430, \u0438 \u043c\u0435\u0442\u043e\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 on-stack replacement \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c JIT \u0441\u043e \u0441\u0432\u043e\u0435\u0439 PGO-\u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439. \u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0436\u0443: OsrLinq \u2014 200 000 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 First \u0441 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c \u0432 \u043e\u0434\u043d\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435, \u0440\u044f\u0434\u043e\u043c OsrFor \u0441 \u0442\u0435\u043c \u0436\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0446\u0438\u043a\u043b\u043e\u043c.OSR-\u0440\u0435\u043f\u0440\u043e: \u00d70,97\u20131,02 \u043a \u0434\u0435\u0432\u044f\u0442\u043a\u0435 \u0443 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438 \u00d70,98\u20131,00 \u0443 \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u043e\u0439 \u2014 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 \u043d\u0435\u0442 \u043d\u0438 \u0442\u0430\u043c, \u043d\u0438 \u0442\u0430\u043c\u0417\u0434\u0435\u0441\u044c \u0436\u0435 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u0438\u0437 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u043e\u0432 issue \u043f\u0440\u043e .NET 11: preview \u0438\u0434\u0451\u0442 \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u0434\u0435\u0432\u044f\u0442\u043a\u043e\u0439 \u0438 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0439 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0443: \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u21163 \u0438 \u21164 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f 10.0.1 \u2014 \u043f\u043e\u0447\u0442\u0438 \u0440\u0435\u043b\u0438\u0437\u043d\u0430\u044f \u0434\u0435\u0441\u044f\u0442\u043a\u0430, \u0434\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u043b\u043e \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u00ab\u0443\u0436\u0435 \u0434\u043e\u043f\u0438\u043b\u0438\u043b\u0438 \u043f\u0430\u0442\u0447\u0430\u043c\u0438\u00bb: \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0438 \u0432 \u0440\u0430\u043d\u043d\u0435\u0439 \u0434\u0435\u0441\u044f\u0442\u043a\u0435.\u0414\u0438\u0437\u0430\u0441\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u043f\u043e\u0447\u0435\u043c\u0443 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b. Tier1-\u0432\u0435\u0440\u0441\u0438\u044f TryGetFirst \u0438\u0437 BCL, \u043c\u0430\u0448\u0438\u043d\u0430 \u21162, .NET 10:; System.Linq.Enumerable:TryGetFirst, Tier1 with Dynamic PGOG_M000_IG26:       mov      r15, gword ptr [rsi+rdx]      ; \u0432\u0437\u044f\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430       test     r15, r15       je       SHORT G_M000_IG25G_M000_IG27:       cmp      dword ptr [r15+0x08], 0xF4243 ; item.X == 1 000 003       jne      SHORT G_M000_IG25G_M000_IG28:       cmp      dword ptr [r15+0x0C], 0xF4261 ; item.Y == 1 000 033       jne      SHORT G_M000_IG25\u0412 \u0442\u0435\u043b\u0435 TryGetFirst \u2014 \u043d\u0435 \u0432\u044b\u0437\u043e\u0432 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430, \u0430 \u0441\u0440\u0430\u0437\u0443 \u043c\u043e\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: X \u0441 1 000 003, Y \u0441 1 000 033: PGO \u0443\u0432\u0438\u0434\u0435\u043b \u0434\u043e\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u0438 \u0437\u0430\u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043b \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 \u0447\u0435\u0440\u0435\u0437 guarded devirtualization, \u0432\u044b\u0437\u043e\u0432 Invoke \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0437\u0430\u043f\u0430\u0441\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435. \u0418 \u0442\u0430\u043a\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043d\u0430 9, 10 \u0438 11 \u2014 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0430 (\u00ab\u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c\u0441\u044f\u00bb) \u0432 \u044d\u0442\u043e\u043c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0435 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0438 \u0440\u0430\u0437\u0443.\u0418\u0441\u0442\u043e\u0440\u0438\u044f 3. \u0414\u0432\u0430 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u0430: \u00d710 \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u0438 \u043c\u0438\u043d\u0443\u0441 22% \u043d\u0430 Count\u0421 .NET 8 \u043d\u0430 .NET 9 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430 \u2014 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0430 \u043d\u0430 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0434\u0430\u0451\u0442 4 596\u20137 089 \u043d\u0441.\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c: \u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430, \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 \u0435\u0449\u0451 25\u201332%    \u042d\u0442\u043e \u043d\u0435 \u043c\u0430\u0433\u0438\u044f PGO, \u0430 \u0441\u043c\u0435\u043d\u0430 \u043f\u0443\u0442\u0438: \u0432 First.cs \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 TryGetFirst \u0438\u0434\u0451\u0442 foreach-\u0435\u043c \u043f\u043e \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440\u0443, \u0432 First.cs \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u2014 \u043f\u043e span \u0447\u0435\u0440\u0435\u0437 TryGetSpan. \u0412\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u0451\u0440\u0433\u0430\u043b\u0430 MoveNext \u0438 Current \u0447\u0435\u0440\u0435\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440, \u0434\u0435\u0432\u044f\u0442\u043a\u0430 \u0438\u0434\u0451\u0442 \u043f\u043e span \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u2014 \u043e\u0442\u0441\u044e\u0434\u0430 \u0438 \u00d710.\u0410 \u0432\u043e\u0442 \u0438 \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0432 First\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u041f\u043e\u043a\u0430 First \u0432\u0451\u043b \u0441\u0435\u0431\u044f \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u0432\u043e, \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0438\u0437 issue: Count \u0441 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u21164 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0435 \u043e\u0442\u0441\u0442\u0430\u043b \u043e\u0442 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 22% \u2014 651,9 \u2192 797,6 \u043d\u0441, StdDev 17 \u0438 25 \u043d\u0441, \u044d\u0442\u043e \u043d\u0435 \u0448\u0443\u043c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0430 \u0442\u0440\u0451\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0442\u043e\u0442 \u0436\u0435 Count \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430 24\u201328%. \u041e\u0434\u0438\u043d \u043c\u0435\u0442\u043e\u0434, \u043e\u0434\u0438\u043d \u043a\u043e\u0434, \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u2014 \u0442\u0440\u0438 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438\u0441\u044c, \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0441\u0435\u043b\u0430.\u0422\u043e\u0442 \u0436\u0435 Count(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0442\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430 24\u201328%, \u043d\u0430 \u21164 \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u043d\u0430 22%\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u043e\u0434\u0438\u043d \u0432 \u043e\u0434\u0438\u043d \u0441 issue: \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043d\u044b\u0439 LINQ-\u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u043c\u0438\u043d\u0443\u0441 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0432 \u043f\u043b\u044e\u0441\u0435. \u041d\u0435 \u00ab\u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0441\u043b\u043e\u043c\u0430\u043b\u0430 LINQ\u00bb \u2014 \u0440\u0435\u0448\u0430\u0435\u0442 \u0441\u0432\u044f\u0437\u043a\u0430 PGO \u0438 \u0436\u0435\u043b\u0435\u0437\u0430, \u0438 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 \u043e\u043d\u0430 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0423 \u0430\u0432\u0442\u043e\u0440\u0430 issue \u043d\u0435 \u043f\u043e\u0432\u0435\u0437\u043b\u043e First \u043d\u0430 13-\u043c \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0438, \u0443 \u043c\u0435\u043d\u044f \u2014 Count \u043d\u0430 Cascade Lake.\u0412\u044b\u0432\u043e\u0434\u044b\u041f\u043e \u0446\u0438\u0444\u0440\u0430\u043c:\u043e\u0431\u0435\u0449\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0451\u043b\u0441\u044f \u043d\u0438 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435, \u043d\u0438 \u0432 OSR-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0437 issue: \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u0435\u0432\u044f\u0442\u043a\u0438 \u043d\u0430 25\u201332%, \u0432 OSR \u2014 \u00d70,97\u20131,02;.NET 11 preview \u0438\u0434\u0451\u0442 \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0439 \u2014 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0430\u043f\u0433\u0440\u0435\u0439\u0434 \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e issue \u043d\u0435\u0437\u0430\u0447\u0435\u043c;\u0441 \u0432\u043e\u0441\u044c\u043c\u0451\u0440\u043a\u0438 \u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0443 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u0432 9,1\u201310,3 \u0440\u0430\u0437\u0430 \u2014 span-\u043f\u0443\u0442\u044c;\u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u043e\u0434\u0430, \u0447\u0442\u043e \u0432 issue, \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u0438 \u0443 \u043c\u0435\u043d\u044f: Count \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u21164 \u2014 \u043c\u0438\u043d\u0443\u0441 22% \u043d\u0430 \u0444\u043e\u043d\u0435 \u043f\u043b\u044e\u0441 24\u201328% \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445. \u0414\u0435\u043b\u043e \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435, \u0430 \u043d\u0435 \u0432 .NET 10;\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435:\u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u043d\u0430 \u0446\u0438\u043a\u043b \u0440\u0430\u0434\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0437\u0430\u0447\u0435\u043c: \u043d\u0430 .NET 10 \u0441\u0430\u043c First \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0446\u0438\u043a\u043b\u0430 \u2014 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445;\u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442: \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442 \u0435\u0433\u043e \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043e\u043c. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u043d\u0430 \u2014 \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438: 24 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 \u0443 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0443\u043b\u044f \u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430.\u041a\u043e\u0434 \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438LinqFirstProof \u2014 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a (First \u0441 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c \u0438 \u0441 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u043e\u043c, \u0441\u0432\u043e\u0438 \u0446\u0438\u043a\u043b\u044b, Count \u0441 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 Sum, OSR-\u0440\u0435\u0436\u0438\u043c, \u0434\u043b\u0438\u043d\u044b 100\/1000\/100000, net8\/9\/10 \u0438 \u0445\u0430\u0440\u043d\u0435\u0441\u0441 \u0434\u043e .NET 11 preview) \u0438 \u0441\u043d\u044f\u0442\u0438\u0435 \u0434\u0438\u0437\u0430\u0441\u043c\u0430 \u0441 \u0436\u0438\u0432\u044b\u043c PGO\u0421\u0441\u044b\u043b\u043a\u0438Issue #117717 \u2014 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 First(\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442) \u0432 .NET 10, \u0440\u0430\u0437\u0431\u043e\u0440 JIT-\u043a\u043e\u043c\u0430\u043d\u0434\u044bIssue #119425 \u2014 \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0444\u0438\u043a\u0441\u0430PR #117816 \u2014 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0444\u0438\u043a\u0441First.cs \u0432 .NET 8 \u2014 \u043f\u0443\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u044d\u043d\u0443\u043c\u0435\u0440\u0430\u0442\u043e\u0440First.cs \u0432 .NET 9 \u2014 span-\u043f\u0443\u0442\u044c \u0447\u0435\u0440\u0435\u0437 TryGetSpan\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 LinqFirstProof \u2014 \u043a\u043e\u0434, \u043f\u0440\u043e\u0433\u043e\u043d\u044b \u0438 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0438 \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043c\u0430\u0448\u0438\u043d\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e Sum \u2014 \u0442\u0435 \u0436\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0441\u044e\u0436\u0435\u0442: \u0433\u0434\u0435 LINQ \u043e\u0431\u0433\u043e\u043d\u044f\u0435\u0442 \u0446\u0438\u043a\u043b \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438\u0412\u0441\u0435\u043c \u0443\u0434\u0430\u0447\u0438 \u0438 \u0434\u043e \u043d\u043e\u0432\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447!PS. \u041f\u043e\u0439\u043c\u0430\u043b\u0438 \u0440\u0435\u0433\u0440\u0435\u0441\u0441 \u0443 \u0441\u0435\u0431\u044f \u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0438 \u0446\u0438\u0444\u0440\u044b.\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\/1060518\/<\/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-487757","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/487757","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=487757"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/487757\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=487757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=487757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=487757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}