{"id":408771,"date":"2024-06-29T20:22:14","date_gmt":"2024-06-29T20:22:14","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=408771"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T20:22:14","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=408771","title":{"rendered":"<span>\u041c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 BDSM. \u0411\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u0441\u0440\u0435\u0434\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/5a8\/c85\/8df\/5a8c858df1faa5b56c048ab09193cae0.jpg\" alt=\"\" title=\"\" width=\"780\" height=\"440\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5a8\/c85\/8df\/5a8c858df1faa5b56c048ab09193cae0.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0427\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0441\u0431\u043e\u0440\u043a\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0438\u0436\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0439. \u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435, \u043e\u0442 \u043a\u0440\u0438\u0432\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a Gradle \u0434\u043e \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d \u2014 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u0441\u0440\u0435\u0434\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0438 \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f.<\/p>\n<p>\u041f\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043f\u0440\u0438\u043b\u0438\u0447\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044e\u0441\u044c \u2014 \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0435\u0440\u0435\u0432\u0430\u043b\u043e\u0432 \u0414\u0430\u043d\u0438\u043b, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0442\u0435\u043c\u0435.<\/p>\n<h2>\u0410 \u0447\u0442\u043e \u0437\u0430 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u0442\u0430\u043a\u0438\u0435?<\/h2>\n<p>\u041f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0440\u0443\u0441\u0441\u043a\u0438\u043c\u0438 \u043d\u0430\u0440\u043e\u0434\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u043e\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e \u044d\u0442\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A3%D0%B7%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D1%81%D1%82%D0%BE\"><u>\u0443\u0437\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e<\/u><\/a>. \u041d\u043e \u044f \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0432\u044b\u043f\u0435\u043d\u0434\u0440\u0435\u0436\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043f\u0440\u0438\u0432\u044b\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u2014 bottleneck. \u0411\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0437\u043d\u0430\u0447\u0438\u0442 \u2014 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u043e\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0443\u043b\u044b\u0431\u043a\u0443 \u0441\u043b\u043e\u0432\u043e \u00ab\u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u00bb. \u041a\u0430\u043a-\u0442\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043f\u043e-\u0434\u0435\u0442\u0441\u043a\u0438 \u043e\u043d\u043e \u0437\u0432\u0443\u0447\u0438\u0442.<\/p>\n<p>\u041b\u0430\u0434\u043d\u043e. \u0410 \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c, \u0430-\u043b\u044f \u00ab\u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c\u00bb?<\/p>\n<p>\u0412\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439\u2026 \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043b\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f. \u041d\u0443 \u0432\u043e\u0442 \u0432 \u043d\u0451\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0418 \u0432\u0441\u0451.\u00a0<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043d\u0435\u0433\u043e. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0435 \u043d\u0430\u0447\u043d\u0443\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u043e\u043d \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442.\u00a0<\/p>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f \u043d\u0430\u0441? \u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043d\u0430 \u0442\u0440\u0451\u0445 Gradle Worker, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/404\/8c8\/fad\/4048c8fad76738853b98ddcdb7e7493e.png\" alt=\"\" title=\"\" width=\"1600\" height=\"560\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/404\/8c8\/fad\/4048c8fad76738853b98ddcdb7e7493e.png\"\/><\/figure>\n<p>\u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u044f Gradle Worker\u2019\u0443 \u043d\u0435\u0447\u0435\u043c \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430. \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u043c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c 100% \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u043e\u0433\u043b\u0430 \u0431\u044b. <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442 \u043c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0434\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438, \u0430 \u0442\u0443\u0442 \u0442\u0430\u043a\u0430\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0430.<\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0443 \u0431\u044b\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0438, \u043d\u043e \u0432\u0440\u043e\u0434\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e\u2026 \u0422\u0430\u043a-\u0442\u043e \u043e\u043d\u043e \u0442\u0430\u043a, \u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 6 Gradle Worker, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ff9\/33e\/667\/ff933e6670d1c43cafde8d4349197d96.png\" alt=\"\" title=\"\" width=\"1600\" height=\"909\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff9\/33e\/667\/ff933e6670d1c43cafde8d4349197d96.png\"\/><\/figure>\n<p>\u0427\u0443\u0442\u044c \u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 Gradle Worker\u2019\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0442\u044c. \u0418 \u0432\u043e\u0442 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0448\u0443\u0442\u043a\u0438. \u0412\u0435\u0434\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0441\u0435\u0433\u043e-\u0442\u043e 6 Gradle Worker. \u0412 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f 12 \u0438\u043b\u0438 16 \u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u043d\u0435 \u0440\u0435\u0434\u043a\u043e\u0441\u0442\u044c \u0438 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u0438\u0445 \u043c\u043e\u0449\u044c. 6 Gradle Worker \u0437\u0430\u0431\u044c\u044e\u0442 \u0438\u0445 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043d\u0430 70%. \u0410 \u0447\u0442\u043e \u0443\u0436 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e CI, \u0433\u0434\u0435 64 \u0438\u043b\u0438 128 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430.\u00a0<\/p>\n<p>\u041a\u0430\u043a \u0438\u0442\u043e\u0433 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435: \u0438\u0437-\u0437\u0430 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c, \u0447\u0442\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u0440\u0430\u0432\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438. \u0417\u043d\u0430\u0447\u0438\u0442, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0434\u0435\u043d\u044c\u0433\u0438. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u043b\u044e\u0431\u0438\u0442 \u0442\u0435\u0440\u044f\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438.<\/p>\n<p>\u041b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u0437\u0438\u0442\u0430\u043c\u0438, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0445 \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u043d\u0430\u0439\u0442\u0438.<\/p>\n<h2>\u041f\u043e\u0438\u0441\u043a \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043a\u0430\u043a\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b: Google, \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0441\u044b\u0449\u0438\u043a \u0438\u043b\u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u043e\u043b\u0431\u0435?<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0431\u0435\u0437 \u0433\u043b\u0443\u043f\u044b\u0445 \u0448\u0443\u0442\u043e\u043a, \u0442\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430:<\/p>\n<ul>\n<li>\n<p>\u0420\u0443\u0447\u043d\u043e\u0439, \u0442\u043e\u0447\u043d\u0435\u0435, \u0433\u043b\u0430\u0437\u043d\u043e\u0439, \u043d\u0443 \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439. \u0418\u0437 \u043c\u0438\u043d\u0443\u0441\u043e\u0432 \u2014 \u043d\u0438\u0437\u043a\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c, \u044f \u0431\u044b \u0441\u043a\u0430\u0437\u0430\u043b \u00ab\u043d\u0430 \u0433\u043b\u0430\u0437\u00bb, \u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e. \u0418\u0437 \u043f\u043b\u044e\u0441\u043e\u0432 \u2014 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u041f\u043e \u0441\u0443\u0442\u0438, \u0430\u043d\u0442\u0438\u043f\u043e\u0434 \u0440\u0443\u0447\u043d\u043e\u0433\u043e. \u0418\u0437 \u043f\u043b\u044e\u0441\u043e\u0432 \u2014 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0418\u0437 \u043c\u0438\u043d\u0443\u0441\u043e\u0432 \u2014 \u043d\u0430\u0434\u043e \u043a\u043e\u0434\u0438\u0442\u044c, \u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043b\u0438 \u044d\u0442\u043e \u043c\u0438\u043d\u0443\u0441?<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0443\u0447\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431<\/h3>\n<p>\u0412\u0435\u0441\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <a href=\"https:\/\/gradle.com\/gradle-enterprise-solutions\/build-scan-root-cause-analysis-data\/\"><u>Gradle Scan<\/u><\/a>. \u042d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c Gradle \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0442\u0447\u0451\u0442 \u043e \u0441\u0431\u043e\u0440\u043a\u0435. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;scan. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code>.\/gradlew assembleDebug --scan<\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0442\u0447\u0451\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\u00a0<\/p>\n<p>\u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u0447\u0451\u0442\u0430 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437\u0434\u0435\u043b \u2014 Timeline. \u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u043c, \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c timeline. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/361\/53c\/b4e\/36153cb4ec6e5cbb14e4c2bcefdebd8d.png\" alt=\"\" title=\"\" width=\"1600\" height=\"268\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/361\/53c\/b4e\/36153cb4ec6e5cbb14e4c2bcefdebd8d.png\"\/><\/figure>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 Gradle Worker\u2019\u043e\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0445 8. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 Gradle Worker \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421\u0435\u0440\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e Tasks, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0442, \u0442\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439. <br \/>\u0421 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u043b\u043e \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u044f\u043c\u0438, \u0431\u043b\u0430\u0433\u043e Gradle Scan \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3a4\/8fa\/27e\/3a48fa27e1fe9ab94846b764d8e73f7b.png\" alt=\"\" title=\"\" width=\"1600\" height=\"268\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3a4\/8fa\/27e\/3a48fa27e1fe9ab94846b764d8e73f7b.png\"\/><\/figure>\n<p>\u0422\u0443\u0442 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0438 \u0441\u0430\u043c\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0438 \u0438 \u0438\u0445 \u043f\u0440\u0438\u0447\u0438\u043d\u044b.\u00a0<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u0435\u0441\u0442\u0432\u0435. \u0421\u043c\u0435\u043b\u043e \u043e\u0431\u0432\u0438\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0431\u043e\u0440\u043a\u0443, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c. \u041f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u044d\u043a\u0437\u0435\u043a\u0443\u0446\u0438\u044e (\u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u043b\u0435\u0435) \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u043e\u0438\u0441\u043a.\u00a0\u00a0<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u0432\u044b \u043d\u0435 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u0435\u0441\u044c. \u0412\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043c\u0438\u043a\u0440\u043e\u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0433\u0434\u0430 \u043a\u0442\u043e-\u0442\u043e \u043a\u043e\u0433\u043e-\u0442\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442, \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u043a\u043e\u0433\u043e-\u0442\u043e \u0436\u0434\u0451\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0430\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u0438 \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0438\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0432 5\u201410% \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f.\u00a0<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0430\u0448\u0438\u0445 Gradle Worker\u2019\u0430 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u0447\u0435\u043c-\u0442\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u2026<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b2\/0dc\/20b\/4b20dc20b0c1df1091b1ad4901ca7ff8.png\" alt=\"\" title=\"\" width=\"1600\" height=\"288\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4b2\/0dc\/20b\/4b20dc20b0c1df1091b1ad4901ca7ff8.png\"\/><\/figure>\n<p>\u0422\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 16-\u0442\u0438 Gradle Worker\u2019\u0430\u0445 \u0438 \u0440\u0430\u0437\u0440\u0443\u0448\u044c\u0442\u0435 \u0438\u043b\u043b\u044e\u0437\u0438\u044e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d3e\/6a6\/5f2\/d3e6a65f2551dd53a2312a480867c34c.png\" alt=\"\" title=\"\" width=\"1600\" height=\"268\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d3e\/6a6\/5f2\/d3e6a65f2551dd53a2312a480867c34c.png\"\/><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043e\u043f\u044f\u0442\u044c \u0447\u0443\u0442\u044c \u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0438. \u041c\u043e\u0436\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Gradle Worker \u0438 \u0434\u043e\u043b\u0433\u043e \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430\u043c\u0438. \u041d\u043e \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 Gradle Worker \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0430\u0448\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0432\u0440\u044f\u0434 \u043b\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 16 \u0448\u0442\u0443\u043a.\u00a0<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u0435\u043d\u044c\u0448\u0435 100 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438\u043b\u0438 5\u20147 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437 \u0432 \u043a\u0432\u0430\u0440\u0442\u0430\u043b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0437\u043b\u043e\u0441\u0442\u043d\u044b\u0435 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435.<\/p>\n<p>\u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441\u0438\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435? \u0418\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 25? \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c\u0438 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0447\u0430\u0449\u0435 \u0438 \u0431\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u043d\u0435\u0435. \u0412\u0435\u0434\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0438 \u043d\u0430 60 \u0441\u0435\u043a\u0443\u043d\u0434 \u0437\u0430 \u0433\u043e\u0434 \u043d\u0430\u043a\u0430\u043f\u0430\u044e\u0442 \u043d\u0430 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043f\u0443\u0441\u0442\u0443\u044e \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0417\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<h3>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431<\/h3>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438, \u043d\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0434\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0447\u0442\u043e \u043c\u044b \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u043b\u0438 \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u0435. \u0410 \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c? \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0435 \u043d\u0430\u0434\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<h4>\u041a\u0430\u043a \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043c\u0435\u0440\u0438\u0442\u044c<\/h4>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u043e\u043a\u0440\u0443\u0433 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f. \u0412\u0435\u0434\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u043b\u0433\u043e, \u0435\u0449\u0451 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u043d\u0438 \u043e\u0442 \u043a\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c, \u0434\u0430 \u0438 \u043e\u0442 \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, app. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043d \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0441\u0435\u0431\u0435 \u0441\u043e\u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u043e\u043a\u0440\u0443\u0433 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, 20 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0442\u043e \u043e\u043d \u043f\u043b\u043e\u0445\u043e\u0439 \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c core-network, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0444\u0430\u0441\u0430\u0434\u043e\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0435\u0442\u044c\u044e, \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0438\u043b\u044b 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0414\u0430 \u0438 \u043d\u0435 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u044f\u043c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 Gradle Worker\u2019\u044b, \u0432\u0435\u0434\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u043d\u0438\u043c \u043c\u043e\u0433\u0443\u0442 \u0432 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c core-database \u0438\u043b\u0438 core-location.<\/p>\n<p>\u0421\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043c\u043d\u043e\u0433\u043e\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0441 \u0432\u0430\u0448\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. \u041d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u00ab\u0443\u0433\u043e\u043b\u043e\u0432\u043d\u043e\u043c \u0434\u0435\u043b\u0435\u00bb \u043e \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430\u0445 \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u044b\u0435 \u0443\u043b\u0438\u043a\u0438.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Gradle, \u0438 \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441 \u044d\u0442\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u043c \u044d\u0442\u043e \u043a\u043e\u0434\u043e\u043c.<\/p>\n<h4>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 Timeline \u0432 Gradle Scan: \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e Gradle Worker, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. \u041d\u0430 \u0433\u043b\u0430\u0437 \u043b\u0435\u0433\u043a\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7d5\/b0f\/2eb\/7d5b0f2eb9e3164ed15dbbb04fa59473.png\" alt=\"\" title=\"\" width=\"1600\" height=\"552\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7d5\/b0f\/2eb\/7d5b0f2eb9e3164ed15dbbb04fa59473.png\"\/><\/figure>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0445 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043d\u043e \u0438 \u043f\u043e\u043c\u0435\u0440\u0438\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 Gradle Worker \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u043b. \u0418 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0438\u043c \u0432\u0438\u043d\u043e\u0432\u043d\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432. \u0427\u0442\u043e \u0438\u0437 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Gradle, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u0430\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438?<\/p>\n<h4>\u0427\u0442\u043e \u043d\u0430\u043c \u0434\u0430\u0451\u0442 Gradle<\/h4>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, Gradle \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 Task.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/93a\/67a\/d56\/93a67ad563cf6d4210b4e7ea8f27b4ab.png\" alt=\"\" title=\"\" width=\"1600\" height=\"555\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/93a\/67a\/d56\/93a67ad563cf6d4210b4e7ea8f27b4ab.png\"\/><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043d\u0446\u0430 \u044d\u0442\u043e\u0439 Task. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 Task.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3b7\/055\/ef9\/3b7055ef9ae124844e71356408bb958d.png\" alt=\"\" title=\"\" width=\"1600\" height=\"555\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3b7\/055\/ef9\/3b7055ef9ae124844e71356408bb958d.png\"\/><\/figure>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f. \u041d\u0435\u043c\u043d\u043e\u0433\u043e. \u041c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u00ab\u0418 \u0440\u0430\u0434\u0438 \u044d\u0442\u043e\u0433\u043e \u0442\u044b \u0440\u0438\u0441\u043e\u0432\u0430\u043b \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b? \u0421\u0435\u0440\u044c\u0451\u0437\u043d\u043e?\u00bb. \u0418 \u043c\u043e\u0439 \u043e\u0442\u0432\u0435\u0442: \u00ab\u0414\u0430, \u0442\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435\u00bb.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u043d\u043e \u0447\u0442\u043e \u0441 \u043d\u0438\u043c\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<h4>\u0427\u0442\u043e \u043d\u0430\u043c \u0441 \u044d\u0442\u0438\u043c \u0434\u0435\u043b\u0430\u0442\u044c?<\/h4>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u0421\u043a\u043e\u0440\u0435\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0432\u0435\u0434\u044c \u0442\u0430\u043a \u0447\u0443\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0440\u0430\u0432\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438. \u0414\u043b\u0438\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u043a\u0430 87 \u0441\u0435\u043a\u0443\u043d\u0434, \u0437\u043d\u0430\u0447\u0438\u0442 \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0438\u0437 87 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0412\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0431\u0443\u0434\u0443\u0442 \u043c\u043e\u0434\u0443\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u0432 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0415\u0441\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0434\u0432\u0443\u0445 Gradle Worker, \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a39\/23d\/586\/a3923d58624b45937ab13e678ee712aa.png\" alt=\"\" title=\"\" width=\"1600\" height=\"452\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a39\/23d\/586\/a3923d58624b45937ab13e678ee712aa.png\"\/><\/figure>\n<p>\u0412\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 timeline, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b.\u00a0<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0443\u0447\u0438\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438. \u041f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u0435\u0441\u043b\u0438 \u0432 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c 2 (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Gradle Worker), \u0442\u043e \u043d\u0430\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e 1 \u0431\u0430\u043b\u043b.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/768\/9a2\/1c6\/7689a21c64d588bec672c8c1a7121ca1.png\" alt=\"\" title=\"\" width=\"1600\" height=\"399\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/768\/9a2\/1c6\/7689a21c64d588bec672c8c1a7121ca1.png\"\/><\/figure>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438, 1 \u0431\u0430\u043b\u043b \u0443 \u043c\u043e\u0434\u0443\u043b\u044f \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0435\u0433\u043e \u0436\u0434\u0443\u0442, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0431\u044b\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0432\u0440\u044f\u0434 \u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 Gradle Worker, \u0442\u043e \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0436 \u0442\u0440\u0451\u0445 Gradle Worker.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0435\u0439, \u043d\u043e \u0447\u0443\u0442\u044c \u043e\u0431\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0436\u0438\u0440\u043a\u043e\u043c. \u0412\u0441\u0451 \u0442\u0430\u043a \u0436\u0435 \u0431\u0435\u0436\u0438\u043c \u043f\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u043b\u043b\u043e\u0432 \u0440\u0430\u0432\u043d\u043e\u0435 \u043e\u0431\u0449\u0435\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 Gradle Worker \u043c\u0438\u043d\u0443\u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u0445 Gradle Worker \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u0445 Gradle Worker. \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044f \u0434\u0430\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0432\u0435\u0440\u0445\u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443: (wA &#8212; wU) \/ wU, \u0433\u0434\u0435 wA \u044d\u0442\u043e \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Gradle Worker, \u0430 wU \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u0445 Gradle Worker.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/48a\/83a\/777\/48a83a777bf8c4063d55e4d36db16721.png\" alt=\"\" title=\"\" width=\"1600\" height=\"495\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/48a\/83a\/777\/48a83a777bf8c4063d55e4d36db16721.png\"\/><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432\u043d\u0451\u0441 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0438 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0434\u0432\u0430 Gradle Worker \u0438\u0437 \u0442\u0440\u0451\u0445, \u0442\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0437\u0430\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u043e 0.5 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0410 \u0435\u0441\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d, \u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0430\u0436 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0442\u043e\u0447\u043d\u044b\u043c. \u0422\u0430\u043a \u043e\u043d\u043e \u0438 \u0435\u0441\u0442\u044c, \u043d\u043e \u0442\u0443\u0442 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0432\u0430\u0436\u043d\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0446\u0435\u043b\u044c \u2014 \u043d\u0435 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u043e \u0432\u0440\u0435\u0434\u043d\u043e\u0441\u0442\u0438, \u0430 \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u044b\u0435 \u0432\u0440\u0435\u0434\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438. \u0412\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u0440\u043e\u0441\u0442\u043e\u044f\u043c \u043d\u0430 \u043f\u043e\u043b\u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0442\u043e \u043d\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0432\u044b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0435\u043c \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0438\u0433\u0440\u0430\u0442\u044c.<\/p>\n<p>\u0410 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430?<\/p>\n<h3>\u041a\u043e\u0434<\/h3>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 Gradle. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e <a href=\"https:\/\/docs.gradle.org\/current\/userguide\/custom_plugins.html#custom_plugins\"><u>Gradle Plugin<\/u><\/a>.<\/p>\n<h4>\u0414\u043e\u0441\u0442\u0430\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/h4>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e Gradle \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u0448\u0442\u0443\u043a\u0443 \u043a\u0430\u043a <a href=\"https:\/\/docs.gradle.org\/current\/javadoc\/org\/gradle\/api\/services\/BuildService.html\"><u>BuildService<\/u><\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/docs.gradle.org\/current\/javadoc\/org\/gradle\/tooling\/events\/OperationCompletionListener.html\"><u>OperationCompletionListener<\/u><\/a>.\u00a0\u00a0<\/p>\n<pre><code class=\"kotlin\">public interface OperationCompletionListener {     void onFinish(FinishEvent event); }<\/code><\/pre>\n<p>\u0412 \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434 onFinish \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u0443\u0436\u043d\u0430\u044f \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 Task.\u00a0<\/p>\n<p>\u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0443\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u043b\u0435\u043f\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 data \u043a\u043b\u0430\u0441\u0441 \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043d\u0430\u043c \u043f\u043e\u043b\u044f\u043c\u0438.<\/p>\n<pre><code class=\"kotlin\">data class TaskExecutionData(    val projectName: String,    val taskName: String,    val startTime: Long,    val endTime: Long )<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c projectName \u2014 \u0438\u043c\u044f \u043c\u043e\u0434\u0443\u043b\u044f, taskName \u2014 \u0438\u043c\u044f Task, startTime \u0438 endTime \u2014 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 Task \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u0438 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f Task \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438, \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0445 \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<h4>\u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/h4>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u0443\u0447\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 Task. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0438\u0437 \u043d\u0438\u0445 Set \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u0430\u0434\u0438\u043c \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 taskDataSet.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0448 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c Timeline.<\/p>\n<pre><code class=\"kotlin\">private fun createTimeline(    taskDataSet: Set&lt;TaskExecutionData> ): List&lt;Set&lt;TaskExecutionData>> {     ... }<\/code><\/pre>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u2014 buildTime. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 Task \u2014 startTime \u0438 \u0432\u0440\u0435\u043c\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 Task \u2014 endTime. \u0414\u0430\u043b\u044c\u0448\u0435 buildTime \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e, \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c startTime \u0438\u0437 endTime.\u00a0<\/p>\n<pre><code class=\"kotlin\">val startTime = taskDataSet.minOf { it.startTime } val endTime = taskDataSet.maxOf { it.endTime } val buildTime = endTime \u2014 startTime<\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c c buildTime. \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u043d\u044f\u043b\u0430 \u0441\u0431\u043e\u0440\u043a\u0430. \u0414\u0430-\u0434\u0430, \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0433\u0434\u0435 \u0432\u0441\u0451 \u0441\u0447\u0438\u0442\u0430\u043b\u0430\u0441\u044c \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 Task \u043f\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0434\u043d\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0430, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0435 \u0443\u0447\u043b\u0438 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e Task \u0438\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u0435\u0451 \u0434\u0432\u0430\u0436\u0434\u044b.<\/p>\n<pre><code class=\"kotlin\">val timeline = 0..buildTime<\/code><\/pre>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430\u0448 timeline \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0435\u0436\u0438\u043c \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 timeline \u0447\u0435\u0440\u0435\u0437 map \u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u2014 calcTime.\u00a0 \u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 Task \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0432 \u0434\u0430\u043d\u043d\u0443\u044e calcTime \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 filter.<\/p>\n<pre><code class=\"kotlin\">timeline.map { currentBuildTime ->    val calcTime = startTime + currentBuildTime    taskDataSet        .filter { calcTime >= it.startTime }        .filter { calcTime &lt; it.endTime }        .toSet() }<\/code><\/pre>\n<p>\u0421\u0448\u0438\u0432 \u0432\u0441\u0435 \u043a\u0443\u0441\u043a\u0438 \u0432\u043c\u0435\u0441\u0442\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u0440\u043e\u0438\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043d\u0430\u043c timeline.<\/p>\n<pre><code class=\"kotlin\">private fun createTimeline(    taskDataSet: Set&lt;TaskExecutionData> ): List&lt;Set&lt;TaskExecutionData>> {    val startTime = taskDataSet.minOf { it.startTime }    val endTime = taskDataSet.maxOf { it.endTime }    val buildTime = (endTime \u2014 startTime)     val timeline = 0..buildTime    return timeline.map { currentBuildTime ->        val calcTime = startTime + currentBuildTime        taskDataSet            .filter { calcTime >= it.startTime }            .filter { calcTime &lt; it.endTime }            .toSet()    } }<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e timeline \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0438\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. <br \/>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Gradle Worker, \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435.\u00a0<\/p>\n<pre><code class=\"kotlin\">val maxWorkerCount = timeline.maxOf { it.size }<\/code><\/pre>\n<p>\u0417\u0430\u0442\u0435\u043c \u0431\u0435\u0436\u0438\u043c \u043f\u043e timeline \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u2014 blockedTime, \u043f\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u043e\u0439 \u043d\u0430\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0435.<\/p>\n<pre><code class=\"kotlin\">timeline.forEach { set ->      val blockedTime = (maxWorkerCount \u2014 set.size).toDouble() \/ set.size      ... }<\/code><\/pre>\n<p>\u041d\u0443 \u0438 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u0435 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c blockedTime \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u0437 Map, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u043b\u044e\u0447\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u043c\u043e\u0434\u0443\u043b\u044f, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u2014 \u043e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u044f, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u043c.<\/p>\n<pre><code class=\"kotlin\">set.forEach { taskData ->     val moduleName = taskData.projectName     val previous = blockedTimeMap.getOrDefault(moduleName, 0)     blockedTimeMap[moduleName] = previous + blockedTime }<\/code><\/pre>\n<p>\u0412\u0441\u0451 \u0432\u043c\u0435\u0441\u0442\u0435 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a.<\/p>\n<pre><code class=\"kotlin\">private fun createBlockedTimeList(    timeline: List&lt;Set&lt;TaskExecutionData>> ): List&lt;Pair&lt;String, Double>> {    val maxWorkerCount = timeline.maxOf { it.size }    val blockedTimeMap = mutableMapOf&lt;String, Double>()    timeline.forEach { set ->      val blockedTime = (maxWorkerCount \u2014 set.size).toDouble() \/ set.size      set.forEach { taskData ->        val moduleName = taskData.projectName        val previous = blockedTimeMap.getOrDefault(moduleName, 0)        blockedTimeMap[moduleName] = previous + blockedTime      }    }    return blockedTimeMap.toList() }<\/code><\/pre>\n<p>\u0421\u0434\u0435\u043b\u0430\u044e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0438 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u0435\u0435 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430. \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u0443\u0447\u0448\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u044f Task, \u0430 \u043d\u0435 \u043c\u043e\u0434\u0443\u043b\u044f. \u0417\u0430 \u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440 \u043a \u0438\u043c\u0435\u043d\u0438 Task \u0438 \u043d\u0430\u0439\u0442\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0438, \u043d\u043e \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0434\u0443\u043b\u0438 \u0441\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e\u0439 \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0438\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u0438\u043c \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u043c Unit-\u0442\u0435\u0441\u0442\u043e\u0432.<\/p>\n<p>\u041d\u043e \u0432\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u043a\u043e\u0434\u0443. \u041c\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e.<\/p>\n<h4>\u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/h4>\n<p>\u0412\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e: \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c, \u0434\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c.\u00a0<\/p>\n<pre><code class=\"kotlin\">val bottlenecks = blockTimeList     .filter { it.second > 5000.0 }     .sortedBy { it.second }     .takeLast(5)     .reversed()  println(\"Bottlenecks:\\n${bottlenecks.joinToString(\"\\n\")}\")<\/code><\/pre>\n<p>\u0411\u0435\u0436\u0438\u043c \u043f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u0441\u0435\u0438\u0432\u0430\u0435\u043c \u043d\u0435\u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0438. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 5 \u0441\u0435\u043a\u0443\u043d\u0434, \u0442\u043e \u0435\u0441\u0442\u044c 5000 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u044f, \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u043c 5 \u0441\u0430\u043c\u044b\u0445 \u0437\u043b\u043e\u0441\u0442\u043d\u044b\u0445 \u043d\u0430\u0440\u0443\u0448\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0449\u0435 \u0431\u044b\u043b\u043e \u0447\u0438\u0442\u0430\u0442\u044c.\u00a0<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u0442\u0430\u043a\u043e\u0433\u043e:<\/p>\n<pre><code>Bottlenecks: (feature_1_impl, 100000) (base_module_1, 90000) (feature_2_impl, 50000) (base_module_3, 40000) (app, 30000)<\/code><\/pre>\n<p>\u041c\u044b \u043d\u0430\u0448\u043b\u0438 \u0441\u0430\u043c\u044b\u0435 \u0432\u0440\u0435\u0434\u043d\u044b\u0435 \u0438\u0437 \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u041c\u043e\u0436\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u043b\u043e\u0433 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 CI \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, 10 \u0441\u0435\u043a\u0443\u043d\u0434, \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043b\u0438\u0442\u0438\u0435\u043c \u043a\u043e\u0434\u0430 \u0432 develop. \u0422\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u0435\u0447\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0438 \u0442\u043e\u0447\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439, \u0432\u0440\u043e\u0434\u0435 \u0442\u0435\u0445 \u0436\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0432\u044f\u0437\u0435\u0439. \u041d\u043e, \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u044f \u043d\u0435 \u0432\u0438\u0436\u0443 \u0432 \u044d\u0442\u043e\u043c \u0441\u0430\u043a\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430. \u041f\u043e\u043a\u0430, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435. \u0412\u0435\u0434\u044c \u0441\u0430\u043c\u044b\u0445 \u0437\u043b\u043e\u0441\u0442\u043d\u044b\u0445 \u043d\u0430\u0440\u0443\u0448\u0438\u0442\u0435\u043b\u0435\u0439 \u0442\u0430\u043a\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430\u0439\u0434\u0451\u0442, \u0430 \u0441 \u043c\u0435\u043b\u043a\u0438\u043c\u0438 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u043d\u0435\u0432\u044b\u0433\u043e\u0434\u043d\u043e.\u00a0<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a\u0438\u0435 \u0432\u0438\u0434\u044b \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a \u0431\u044b\u0432\u0430\u044e\u0442, \u0438 \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f.<\/p>\n<h2>\u0412\u0438\u0434\u044b \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a, \u0438 \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f<\/h2>\n<p>\u042f \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043a\u0430\u043a-\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u044b \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b \u043b\u0438\u0447\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0440\u0443\u0447\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u044f\u043c \u0432\u0441\u0435-\u0432\u0441\u0435 \u0432\u0438\u0434\u044b. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u043e\u0435. \u042f \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0438\u0434\u044b \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0438\u0445 \u0432\u0440\u0435\u0434\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438:<\/p>\n<ol>\n<li>\n<p>\u0420\u0430\u0437\u0440\u043e\u0441\u0448\u0438\u0439\u0441\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u0441 \u043f\u043b\u043e\u0445\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445. \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f.\u00a0<\/p>\n<h3>\u0420\u0430\u0437\u0440\u043e\u0441\u0448\u0438\u0439\u0441\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c<\/h3>\n<p>\u041a\u0430\u043a \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e <a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/667776\/\"><u>\u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c<\/u><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0441\u0442\u0430\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c. \u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435, \u043e\u0442 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0434\u043e \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0438\u0437 \u0441\u043b\u043e\u0451\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.\u00a0<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c base-data, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041f\u043e\u0445\u043e\u0434\u044b \u0432 \u0441\u0435\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0442.\u043f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/344\/511\/876\/344511876359150b4df36956dd41aa1f.png\" alt=\"\" title=\"\" width=\"1600\" height=\"165\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/344\/511\/876\/344511876359150b4df36956dd41aa1f.png\"\/><\/figure>\n<p>\u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0442\u0430\u043d\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u044c\u0448\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0443\u0436\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4ee\/060\/0da\/4ee0600da92b3c0e192b1f55cce9f62d.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ee\/060\/0da\/4ee0600da92b3c0e192b1f55cce9f62d.png\"\/><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439.<\/p>\n<p>\u041a\u0430\u043a \u043f\u043e\u0431\u043e\u0440\u043e\u0442\u044c \u044d\u0442\u043e? \u0420\u0430\u0441\u043f\u0438\u043b. \u041d\u0430\u0434\u043e \u0437\u0430\u043b\u0435\u0437\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u044c \u043c\u043e\u0434\u0443\u043b\u044f \u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u2014 \u043d\u0435\u0442 \u043b\u0438 \u0432 \u043d\u0451\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.\u00a0<\/p>\n<p>\u0412 90% \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0432 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 \u0442\u0430\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u044b\u0445 \u0443\u0441\u0438\u043b\u0438\u0439. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043e\u043d\u0438 \u0434\u0430\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0430\u0431\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \u041d\u0430\u0448 \u043c\u043e\u0434\u0443\u043b\u044c base-data \u0431\u0435\u0437 \u0437\u0430\u0437\u0440\u0435\u043d\u0438\u044f \u0441\u043e\u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430 \u0434\u0432\u0430 \u043c\u043e\u0434\u0443\u043b\u044f: base-network \u0438 base-database.<\/p>\n<p>\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b1b\/ce0\/7c1\/b1bce07c1950577e4f966812f167dd63.png\" alt=\"\" title=\"\" width=\"1600\" height=\"378\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b1b\/ce0\/7c1\/b1bce07c1950577e4f966812f167dd63.png\"\/><\/figure>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u00ab\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445\u00bb \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c base-data, \u0430 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430 timeline \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1cf\/948\/613\/1cf94861305ddc98464f88f5f1ad48ac.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1cf\/948\/613\/1cf94861305ddc98464f88f5f1ad48ac.png\"\/><\/figure>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0437\u0430 \u0441\u0447\u0451\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u0438 \u0447\u0430\u0441\u0442\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u0441\u0432\u044f\u0437\u044c \u043d\u0430 base-database, \u0438 \u043e\u043d\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 base-network, \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c base-database.<\/p>\n<p>\u041a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u0441\u0442\u0430\u043b\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435. \u041c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438!<\/p>\n<p>\u041d\u043e\u2026 \u041c\u043e\u0434\u0443\u043b\u044c \u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0438, \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439. \u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u043f\u0438\u043b \u0435\u0433\u043e \u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0437\u0430\u0439\u043c\u0451\u0442 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u043e \u0432\u043e\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0432\u044f\u0437\u044f\u0445, \u043a\u043e\u0433\u043e \u0438 \u043a\u0443\u0434\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c, \u0432\u0435\u0434\u044c \u043d\u0435 \u0432\u0441\u0435\u043c \u043d\u0443\u0436\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0435\u0442\u044c\u044e, \u0438 \u043d\u0435 \u0432\u0441\u0435\u043c \u043d\u0443\u0436\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445, \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0414\u0430\u0436\u0435 \u043d\u0430 \u0441\u043e\u0442\u043d\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044d\u0442\u043e \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u0447\u0442\u043e \u0443\u0436 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e 400 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435. \u041f\u043e\u043a\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u0448\u044c\u0441\u044f \u0441 \u0447\u0430\u0441\u0442\u044c\u044e \u0441\u0432\u044f\u0437\u0435\u0439 \u0432 develop, \u043a\u0442\u043e-\u0442\u043e \u043d\u0430\u043a\u0438\u043d\u0435\u0442 \u0435\u0449\u0451 \u043f\u0430\u0440\u043e\u0447\u043a\u0443.<\/p>\n<p>\u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u00ab\u043b\u0430\u0439\u0444\u0445\u0430\u043a\u043e\u043c\u00bb. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c base-data \u0432 \u043f\u0440\u043e\u043a\u0441\u0438 \u043c\u043e\u0434\u0443\u043b\u044c, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u044b \u043a\u0430\u043a api \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u043d\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 base-network \u0438 base-database. \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0432\u0441\u0435, \u043a\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a \u0441\u0435\u0431\u0435 base-data, \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u0438 \u0435\u0433\u043e \u00ab\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435\u00bb \u043c\u043e\u0434\u0443\u043b\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c base-data \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u0434\u0430 \u0432\u043e\u043e\u0431\u0449\u0435.<\/p>\n<p>\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bbd\/cf6\/541\/bbdcf654166dcd5f83d50c86881c3356.png\" alt=\"\" title=\"\" width=\"1600\" height=\"378\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bbd\/cf6\/541\/bbdcf654166dcd5f83d50c86881c3356.png\"\/><\/figure>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f timeline \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e: base-network \u0438 base-database \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u0432\u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u044b \u0436\u0434\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f base-data.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c02\/874\/528\/c02874528e7ae677f8878dde45170bab.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c02\/874\/528\/c02874528e7ae677f8878dde45170bab.png\"\/><\/figure>\n<p>\u0417\u0430\u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0441\u043f\u0438\u043b\u0430 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438. \u041c\u043e\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043a\u0430\u0442\u0438\u0442\u044c \u0440\u0430\u0441\u043f\u0438\u043b. \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c base-data \u0432 \u043d\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 \u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435, \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443, \u0431\u0435\u0437 \u0441\u043f\u0435\u0448\u043a\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e. \u0417\u0430 \u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u00ab\u043b\u0430\u0439\u0444\u0445\u0430\u043a\u0430\u00bb \u0438 \u043d\u0438\u0437\u043a\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0438\u043b \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u044f \u0432\u0430\u0441 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 app.<\/p>\n<h3>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c<\/h3>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u043e\u043d \u0443 \u0432\u0441\u0435\u0445 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f app, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0438\u043b\u0438 \u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e. \u0412 \u043d\u0435\u0433\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0432\u0441\u0435 \u0432\u0435\u0442\u0432\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u041e\u043d \u0441\u0442\u0432\u043e\u043b \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0433\u0443\u0447\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430, \u0438 \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0441 \u043d\u0438\u043c \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6b8\/3a6\/afd\/6b83a6afd0d36f852510dd00904edf7c.png\" alt=\"\" title=\"\" width=\"1164\" height=\"644\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6b8\/3a6\/afd\/6b83a6afd0d36f852510dd00904edf7c.png\"\/><\/figure>\n<p>\u041e\u043d \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c, \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u043d\u0438\u043c. \u0418 \u043e\u043d \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c, \u043d\u0435 \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0432\u043e\u043b\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u043e \u0432\u0441\u0451 \u0442\u0430\u043a\u0438.\u00a0<\/p>\n<p>\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/178\/c5f\/13e\/178c5f13e6c3707f4d9e09a65924bd22.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/178\/c5f\/13e\/178c5f13e6c3707f4d9e09a65924bd22.png\"\/><\/figure>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f app, \u0443 \u043d\u0430\u0441 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u0412\u0435\u0434\u044c \u0435\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441 \u043a\u0435\u043c \u0441\u0431\u043e\u0440\u0438\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e.\u00a0<\/p>\n<p>\u0427\u0442\u043e \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u0420\u0430\u0441\u043f\u0438\u043b. \u041e\u043f\u044f\u0442\u044c.\u00a0<\/p>\n<p>\u0420\u0430\u0437 \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0431\u043e\u0440\u043e\u0442\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e app \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c, \u0442\u043e \u043d\u0430\u0434\u043e \u0445\u043e\u0442\u044f \u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0435\u0433\u043e \u0441\u0431\u043e\u0440\u043a\u0438.\u00a0<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u043d\u043e\u0441\u0438\u043c \u0438\u0437 app \u0432\u0441\u0451, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043d\u0435\u0441\u0442\u0438, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u043b\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u0416\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u043f\u0438\u043b\u0438\u0432\u0430\u0442\u044c \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0443\u043b\u0435\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4da\/351\/5b3\/4da3515b33c34268ae64203f11a268c4.png\" alt=\"\" title=\"\" width=\"1600\" height=\"561\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4da\/351\/5b3\/4da3515b33c34268ae64203f11a268c4.png\"\/><\/figure>\n<p>\u0417\u0430 \u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u0441\u044f, \u0430 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u0441\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3b8\/7eb\/69e\/3b87eb69ed9efcd8c277e14021b740ef.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3b8\/7eb\/69e\/3b87eb69ed9efcd8c277e14021b740ef.png\"\/><\/figure>\n<p>\u041d\u043e \u043d\u0435\u0443\u0436\u0435\u043b\u0438 \u043d\u0438\u043a\u0430\u043a \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 app \u043a\u0430\u043a \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430 \u043d\u0430\u0441\u043e\u0432\u0441\u0435\u043c? \u0412\u043e\u043e\u0431\u0449\u0435, \u0441\u043f\u043e\u0441\u043e\u0431 \u0435\u0441\u0442\u044c. \u041d\u043e \u043e\u043d \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u0435\u043d. \u0418\u043c\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 dynamic-feature. \u041c\u0430\u0433\u0438\u044f \u0442\u0443\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e app \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a \u0441\u0435\u0431\u0435 dynamic-feature \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c. \u041d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u044d\u0442\u043e dynamic-feature \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a \u0441\u0435\u0431\u0435 app \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/472\/696\/388\/472696388a6879ab017df6ffdf43ace0.png\" alt=\"\" title=\"\" width=\"1600\" height=\"575\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/472\/696\/388\/472696388a6879ab017df6ffdf43ace0.png\"\/><\/figure>\n<p>\u041f\u043e\u043b\u044c\u0437\u0430 \u0442\u0443\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e dynamic-feature. \u041e\u043d\u0438-\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 app \u0438, \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/db5\/f23\/fb4\/db5f23fb4d118a3b6b933f8704c33b02.png\" alt=\"\" title=\"\" width=\"1600\" height=\"437\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/db5\/f23\/fb4\/db5f23fb4d118a3b6b933f8704c33b02.png\"\/><\/figure>\n<p>\u0417\u0430 \u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0448\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 \u043b\u0435\u0441, \u0438 \u0434\u043b\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0439 dynamic-feature. \u0415\u0441\u043b\u0438 \u043e\u0434\u043d\u0430, \u0442\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441 app \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f.\u00a0<\/p>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431, \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c install-time dynamic-feature. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043b\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/670468\/\"><u>\u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439<\/u><\/a>. \u0414\u0430 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0447\u0443\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0435\u0435.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0435 \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u044c \u0441 \u043f\u043b\u043e\u0445\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439<\/h3>\n<p>\u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0447\u0430\u044f\u043d\u043d\u043e \u0438\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043a\u043e\u0441\u044f\u0447\u0438\u043b\u0438 \u0441 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a39\/9a7\/b46\/a399a7b4631d68b11b86a7e7a1f789dd.png\" alt=\"\" title=\"\" width=\"1600\" height=\"359\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a39\/9a7\/b46\/a399a7b4631d68b11b86a7e7a1f789dd.png\"\/><\/figure>\n<p>\u0424\u0438\u0447\u0451\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c feature-1-impl \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a \u0441\u0435\u0431\u0435 feature-2-impl, \u0430 \u0442\u043e\u0442 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a \u0441\u0435\u0431\u0435 feature-3-impl. \u041d\u043e \u0432\u0435\u0434\u044c \u0444\u0438\u0447\u0451\u0432\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e? \u0414\u0430, \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b. \u041f\u043e\u0442\u043e\u043c\u0443 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0438 \u043f\u043b\u043e\u0445\u0430\u044f. \u041f\u0440\u0438\u0447\u0438\u043d \u0434\u043b\u044f \u0435\u0451 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u2014 \u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0441\u043f\u0438\u043b\u0438\u043b\u0438, \u043d\u0435\u0434\u043e\u043f\u043e\u043d\u044f\u043b\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e, \u0442\u043e\u0440\u043e\u043f\u0438\u043b\u0438\u0441\u044c, \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0438\u0441\u044c, \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u043b\u0438 build \u0444\u0430\u0439\u043b \u0438 \u0442.\u043f. \u041f\u0440\u0438\u0447\u0438\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u0438 \u043e\u043d\u0438 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0435 \u0432\u0430\u0436\u043d\u044b.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6a7\/e5b\/faa\/6a7e5bfaaafd8896ff0ae5af0fc38f14.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6a7\/e5b\/faa\/6a7e5bfaaafd8896ff0ae5af0fc38f14.png\"\/><\/figure>\n<p>\u041c\u043e\u0433\u0443\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0438 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432. \u0422\u0430\u043a \u043a\u0430\u043a, \u043f\u043e \u0441\u0443\u0442\u0438, \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441\u0442\u0430\u043b\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u0427\u0442\u043e \u0442\u0443\u0442 \u0434\u0435\u043b\u0430\u0442\u044c? \u0420\u0430\u0441\u043f\u0438\u043b? \u041d\u0430 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u0435 \u0440\u0430\u0441\u043f\u0438\u043b. \u041d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0443, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a\u0430\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c. \u041d\u0430 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e: \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0435\u0432\u0435\u0440\u043d\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0432 build-\u0444\u0430\u0439\u043b\u0435 \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e-\u0442\u043e \u043e\u0442\u0432\u0430\u043b\u0438\u0442\u0441\u044f \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0451\u0442. \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0447\u0438\u043d\u0430. \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0431\u043e \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u043b\u0438\u0431\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/04d\/f14\/a40\/04df14a401e473c158d27281c59742a5.png\" alt=\"\" title=\"\" width=\"1600\" height=\"489\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/04d\/f14\/a40\/04df14a401e473c158d27281c59742a5.png\"\/><\/figure>\n<p>\u041d\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u044d\u0442\u043e \u043f\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u043e\u0447\u0435\u043d\u044c \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/62c\/7f8\/ae7\/62c7f8ae70ec032c2c6b8ca6dc2efb80.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/62c\/7f8\/ae7\/62c7f8ae70ec032c2c6b8ca6dc2efb80.png\"\/><\/figure>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u0440\u0435\u0434 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438, \u0442\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0447\u0438\u043d\u0438\u0442\u0441\u044f. \u0427\u0442\u043e \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u043f\u043b\u044e\u0441.<\/p>\n<p>\u041d\u0443 \u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0442\u0438\u043f \u2014 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0435 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u044b.<\/p>\n<h3>\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0435 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u044b<\/h3>\n<p>\u0410 \u0447\u0442\u043e \u0437\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0435 \u2014 \u00ab\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u00bb? \u0410 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u044f \u0435\u0433\u043e \u0441\u0430\u043c \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \ud83d\ude42\u00a0<\/p>\n<p>\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 \u2014 \u044d\u0442\u043e \u043b\u0438\u0431\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0438\u0435 \u0438\u0437 \u043e\u0434\u043d\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0451\u043d, \u043b\u0438\u0431\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0431\u0435\u0441\u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0440\u0430\u0434\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432\u0441\u0451 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0434\u0438\u043d \u043c\u043e\u0434\u0443\u043b\u044c. \u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u043d\u043e\u0441\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0451, \u0447\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0432\u0440\u0435\u0434\u0438\u0442\u044c, \u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432-\u0442\u043e 20, \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u0438\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c. \u0427\u0430\u0441\u0442\u043e \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0438 \u0441\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043e\u0431\u0449\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u2014 \u0432\u0440\u043e\u0434\u0435 utils \u0438\u043b\u0438 shared-list-ui, user-api\/user-feature.<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0442\u0430\u043a\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0432\u0438\u043d\u043d\u043e\u0439 \u043e\u0432\u0435\u0447\u043a\u043e\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cd8\/1c7\/008\/cd81c7008a1cc702c5979a756746e156.png\" alt=\"\" title=\"\" width=\"1600\" height=\"489\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cd8\/1c7\/008\/cd81c7008a1cc702c5979a756746e156.png\"\/><\/figure>\n<p>\u041d\u043e \u0432 timeline \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u0430\u044f \u0441\u0443\u0442\u044c. \u0417\u0430 \u0441\u0447\u0451\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 5 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437 \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, \u0447\u0435\u043c \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/226\/eb0\/aa1\/226eb0aa1f6aa626ac929e39b00cbb4e.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/226\/eb0\/aa1\/226eb0aa1f6aa626ac929e39b00cbb4e.png\"\/><\/figure>\n<p>\u0418 \u043a\u0430\u043a \u0431\u044b \u0443\u0436\u0435 \u0432\u0441\u0451 \u043d\u0435 \u0440\u0430\u0434\u0443\u0436\u043d\u043e, \u043d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0445\u0443\u0436\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0435 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0438 \u043f\u043b\u043e\u0445\u0443\u044e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e. \u0410 \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439, \u0442\u043e \u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5b7\/9ba\/a74\/5b79baa74c929402750888a3758eeb8d.png\" alt=\"\" title=\"\" width=\"1600\" height=\"556\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5b7\/9ba\/a74\/5b79baa74c929402750888a3758eeb8d.png\"\/><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430 timeline \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439 \u0443\u0436\u0430\u0441.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f39\/ab7\/e26\/f39ab7e26d4f50665ad810ece72bb095.png\" alt=\"\" title=\"\" width=\"1600\" height=\"409\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f39\/ab7\/e26\/f39ab7e26d4f50665ad810ece72bb095.png\"\/><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e.<\/p>\n<p>\u0410 \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0434\u0435\u043b\u0430\u0442\u044c? \u0410 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a. \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u0438 \u0440\u0430\u0441\u043f\u0438\u043b\u0438\u0432\u0430\u0435\u043c. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u0442\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043e\u0431\u0449\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7ca\/529\/dd8\/7ca529dd81a7904f0ac05e523ebb5f02.png\" alt=\"\" title=\"\" width=\"1600\" height=\"709\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ca\/529\/dd8\/7ca529dd81a7904f0ac05e523ebb5f02.png\"\/><\/figure>\n<p>Timeline \u0443\u0436\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043b\u0443\u0447\u0448\u0435. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u043c \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043e\u043c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u0446\u0435\u043b\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u043e \u0438 \u043f\u0440\u0438\u0447\u0438\u043d \u0438\u043c\u0435\u0442\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0443 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1cb\/49b\/79f\/1cb49b79fa46d667eb744b2d41f0f399.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1cb\/49b\/79f\/1cb49b79fa46d667eb744b2d41f0f399.png\"\/><\/figure>\n<p>\u041d\u0443 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u043f\u0438\u043b, \u0442\u0443\u0442 \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0432\u0441\u0451 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043d\u0430\u0448 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 \u043d\u0430 \u0442\u0440\u0438 \u0447\u0430\u0441\u0442\u0438.\u00a0<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5a3\/5d1\/334\/5a35d1334c85f118b2c0855f20f36872.png\" alt=\"\" title=\"\" width=\"1600\" height=\"620\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5a3\/5d1\/334\/5a35d1334c85f118b2c0855f20f36872.png\"\/><\/figure>\n<p>\u041f\u043e\u043f\u0443\u0442\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u043c \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u044f\u043c \u043d\u0443\u0436\u043d\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043a \u043e\u0431\u0449\u0438\u043c \u043c\u043e\u0434\u0443\u043b\u044f\u043c, \u0447\u0442\u043e \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/26c\/7c4\/6da\/26c7c46da2b206071311b12207c3267b.png\" alt=\"\" title=\"\" width=\"1600\" height=\"438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/26c\/7c4\/6da\/26c7c46da2b206071311b12207c3267b.png\"\/><\/figure>\n<p>\u00a0<\/p>\n<p>\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430\u043c\u0438 \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u043e\u0442 \u0435\u0449\u0451 \u0433\u0435\u043c\u043e\u0440\u0440\u043e\u0439. \u042d\u0442\u043e \u0434\u043e\u043b\u0433\u043e \u0438 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e, \u043d\u043e \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u043d\u0443\u0448\u0430\u044e\u0449\u0438\u0439.\u00a0<\/p>\n<h2>\u0418\u0442\u043e\u0433<\/h2>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c\u0438 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430\u043c\u0438, \u043a\u0430\u043a \u0438 \u0441 \u0441\u0435\u0440\u0434\u0435\u0447\u043d\u043e-\u0441\u043e\u0441\u0443\u0434\u0438\u0441\u0442\u044b\u043c\u0438 \u0437\u0430\u0431\u043e\u043b\u0435\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u2014 \u043b\u0443\u0447\u0448\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0444\u0438\u043b\u0430\u043a\u0442\u0438\u043a\u043e\u0439, \u0430 \u0435\u0441\u043b\u0438 \u0443\u0436 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u043b\u0438, \u0442\u043e \u043b\u0435\u0447\u0438\u0442\u044c, \u043f\u043e\u043a\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0440\u0430\u0437\u0440\u043e\u0441\u043b\u0430\u0441\u044c, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u0443\u043a\u0443 \u043d\u0430 \u043f\u0443\u043b\u044c\u0441\u0435.<\/p>\n<p>\u041d\u0443 \u0438 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u2014 \u044d\u0442\u043e \u0434\u043e\u0440\u043e\u0433\u043e. \u041a\u0430\u043a \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u0442\u0430\u043a \u0438 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0435\u043b\u0435\u0437\u0430. \u0411\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438 \u0442\u043e\u0447\u043d\u043e \u043d\u0443\u0436\u043d\u043e. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0432 \u0437\u0430\u0440\u043e\u0434\u044b\u0448\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0445\u043e\u0434\u0443 \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0441\u0442\u0430\u043d\u0435\u0442 \u043b\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0443\u0436\u0435 \u043f\u0440\u043e\u044f\u0432\u0438\u043b \u0441\u0435\u0431\u044f, \u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u0435\u0433\u043e \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u043d\u044c\u0448\u0435. \u0422\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0442\u043e\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0434\u043e\u0440\u043e\u0436\u0435.<\/p>\n<p>\u0414\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0446\u0438\u043a\u043b\u0430:<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/667776\/\"><u>\u041c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 BDSM: \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c Gradle \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0431\u044b\u0432\u0430\u044e\u0442?<\/u><\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/670468\/\"><u>\u041c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 BDSM: \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u0430\u0442\u044c Gradle \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e?<\/u><\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/725984\/\"> https:\/\/habr.com\/ru\/articles\/725984\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u0427\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0441\u0431\u043e\u0440\u043a\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0438\u0436\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0439. \u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435, \u043e\u0442 \u043a\u0440\u0438\u0432\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a Gradle \u0434\u043e \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d \u2014 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u0441\u0440\u0435\u0434\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0438 \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f.<\/p>\n<p>\u041f\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043f\u0440\u0438\u043b\u0438\u0447\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044e\u0441\u044c \u2014 \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0435\u0440\u0435\u0432\u0430\u043b\u043e\u0432 \u0414\u0430\u043d\u0438\u043b, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0442\u0435\u043c\u0435.<\/p>\n<h2>\u0410 \u0447\u0442\u043e \u0437\u0430 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u0442\u0430\u043a\u0438\u0435?<\/h2>\n<p>\u041f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0440\u0443\u0441\u0441\u043a\u0438\u043c\u0438 \u043d\u0430\u0440\u043e\u0434\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u043e\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e \u044d\u0442\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A3%D0%B7%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D1%81%D1%82%D0%BE\"><u>\u0443\u0437\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e<\/u><\/a>. \u041d\u043e \u044f \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0432\u044b\u043f\u0435\u043d\u0434\u0440\u0435\u0436\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043f\u0440\u0438\u0432\u044b\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u2014 bottleneck. \u0411\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0437\u043d\u0430\u0447\u0438\u0442 \u2014 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u043e\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0443\u043b\u044b\u0431\u043a\u0443 \u0441\u043b\u043e\u0432\u043e \u00ab\u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u00bb. \u041a\u0430\u043a-\u0442\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043f\u043e-\u0434\u0435\u0442\u0441\u043a\u0438 \u043e\u043d\u043e \u0437\u0432\u0443\u0447\u0438\u0442.<\/p>\n<p>\u041b\u0430\u0434\u043d\u043e. \u0410 \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c, \u0430-\u043b\u044f \u00ab\u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c\u00bb?<\/p>\n<p>\u0412\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439\u2026 \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043b\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f. \u041d\u0443 \u0432\u043e\u0442 \u0432 \u043d\u0451\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0418 \u0432\u0441\u0451.\u00a0<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043d\u0435\u0433\u043e. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0435 \u043d\u0430\u0447\u043d\u0443\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u043e\u043d \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442.\u00a0<\/p>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f \u043d\u0430\u0441? \u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043d\u0430 \u0442\u0440\u0451\u0445 Gradle Worker, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0438.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u044f Gradle Worker\u2019\u0443 \u043d\u0435\u0447\u0435\u043c \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430. \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u043c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c 100% \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u043e\u0433\u043b\u0430 \u0431\u044b. <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442 \u043c\u043d\u043e\u0433\u043e\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0434\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438, \u0430 \u0442\u0443\u0442 \u0442\u0430\u043a\u0430\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0430.<\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0443 \u0431\u044b\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0438, \u043d\u043e \u0432\u0440\u043e\u0434\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e\u2026 \u0422\u0430\u043a-\u0442\u043e \u043e\u043d\u043e \u0442\u0430\u043a, \u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 6 Gradle Worker, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0427\u0443\u0442\u044c \u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 Gradle Worker\u2019\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0442\u044c. \u0418 \u0432\u043e\u0442 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0448\u0443\u0442\u043a\u0438. \u0412\u0435\u0434\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0441\u0435\u0433\u043e-\u0442\u043e 6 Gradle Worker. \u0412 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f 12 \u0438\u043b\u0438 16 \u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u044b \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u043d\u0435 \u0440\u0435\u0434\u043a\u043e\u0441\u0442\u044c \u0438 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u0438\u0445 \u043c\u043e\u0449\u044c. 6 Gradle Worker \u0437\u0430\u0431\u044c\u044e\u0442 \u0438\u0445 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043d\u0430 70%. \u0410 \u0447\u0442\u043e \u0443\u0436 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e CI, \u0433\u0434\u0435 64 \u0438\u043b\u0438 128 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430.\u00a0<\/p>\n<p>\u041a\u0430\u043a \u0438\u0442\u043e\u0433 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435: \u0438\u0437-\u0437\u0430 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c, \u0447\u0442\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u0440\u0430\u0432\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438. \u0417\u043d\u0430\u0447\u0438\u0442, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0434\u0435\u043d\u044c\u0433\u0438. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u043b\u044e\u0431\u0438\u0442 \u0442\u0435\u0440\u044f\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438.<\/p>\n<p>\u041b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u0437\u0438\u0442\u0430\u043c\u0438, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0445 \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u043d\u0430\u0439\u0442\u0438.<\/p>\n<h2>\u041f\u043e\u0438\u0441\u043a \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0433\u043e\u0440\u043b\u044b\u0448\u0435\u043a<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043a\u0430\u043a\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b: Google, \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0441\u044b\u0449\u0438\u043a \u0438\u043b\u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0442\u043e\u043b\u0431\u0435?<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0431\u0435\u0437 \u0433\u043b\u0443\u043f\u044b\u0445 \u0448\u0443\u0442\u043e\u043a, \u0442\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430:<\/p>\n<ul>\n<li>\n<p>\u0420\u0443\u0447\u043d\u043e\u0439, \u0442\u043e\u0447\u043d\u0435\u0435, \u0433\u043b\u0430\u0437\u043d\u043e\u0439, \u043d\u0443 \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439. \u0418\u0437 \u043c\u0438\u043d\u0443\u0441\u043e\u0432 \u2014 \u043d\u0438\u0437\u043a\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c, \u044f \u0431\u044b \u0441\u043a\u0430\u0437\u0430\u043b \u00ab\u043d\u0430 \u0433\u043b\u0430\u0437\u00bb, \u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e. \u0418\u0437 \u043f\u043b\u044e\u0441\u043e\u0432 \u2014 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u041f\u043e \u0441\u0443\u0442\u0438, \u0430\u043d\u0442\u0438\u043f\u043e\u0434 \u0440\u0443\u0447\u043d\u043e\u0433\u043e. \u0418\u0437 \u043f\u043b\u044e\u0441\u043e\u0432 \u2014 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u0418\u0437 \u043c\u0438\u043d\u0443\u0441\u043e\u0432 \u2014 \u043d\u0430\u0434\u043e \u043a\u043e\u0434\u0438\u0442\u044c, \u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043b\u0438 \u044d\u0442\u043e \u043c\u0438\u043d\u0443\u0441?<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0443\u0447\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431<\/h3>\n<p>\u0412\u0435\u0441\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <a href=\"https:\/\/gradle.com\/gradle-enterprise-solutions\/build-scan-root-cause-analysis-data\/\"><u>Gradle Scan<\/u><\/a>. \u042d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c Gradle \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0442\u0447\u0451\u0442 \u043e \u0441\u0431\u043e\u0440\u043a\u0435. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;scan. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code>.\/gradlew assembleDebug --scan<\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0442\u0447\u0451\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\u00a0<\/p>\n<p>\u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u0447\u0451\u0442\u0430 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437\u0434\u0435\u043b \u2014 Timeline. \u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u043c, \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c timeline. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 Gradle Worker\u2019\u043e\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0445 8. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0435\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 Gradle Worker \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421\u0435\u0440\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e Tasks, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0442, \u0442\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439. <br \/>\u0421 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u043b\u043e \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u044f\u043c\u0438, \u0431\u043b\u0430\u0433\u043e Gradle Scan \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0443\u0442 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0438 \u0441\u0430\u043c\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0438 \u0438 \u0438\u0445 \u043f\u0440\u0438\u0447\u0438\u043d\u044b.\u00a0<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u0435\u0441\u0442\u0432\u0435. \u0421\u043c\u0435\u043b\u043e \u043e\u0431\u0432\u0438\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0431\u043e\u0440\u043a\u0443, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c. \u041f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u044d\u043a\u0437\u0435\u043a\u0443\u0446\u0438\u044e (\u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u043b\u0435\u0435) \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u043e\u0438\u0441\u043a.\u00a0\u00a0<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u0432\u044b \u043d\u0435 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u0435\u0441\u044c. \u0412\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043c\u0438\u043a\u0440\u043e\u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0433\u0434\u0430 \u043a\u0442\u043e-\u0442\u043e \u043a\u043e\u0433\u043e-\u0442\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442, \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u043a\u043e\u0433\u043e-\u0442\u043e \u0436\u0434\u0451\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0430\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u0438 \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0438\u0442\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0432 5\u201410% \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f.\u00a0<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 \u0432\u0441\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0430\u0448\u0438\u0445 Gradle Worker\u2019\u0430 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u0447\u0435\u043c-\u0442\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u2026<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 16-\u0442\u0438 Gradle Worker\u2019\u0430\u0445 \u0438 \u0440\u0430\u0437\u0440\u0443\u0448\u044c\u0442\u0435 \u0438\u043b\u043b\u044e\u0437\u0438\u044e.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043e\u043f\u044f\u0442\u044c \u0447\u0443\u0442\u044c \u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0438. \u041c\u043e\u0436\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Gradle Worker \u0438 \u0434\u043e\u043b\u0433\u043e \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430\u043c\u0438. \u041d\u043e \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 Gradle Worker \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0430\u0448\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0432\u0440\u044f\u0434 \u043b\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 16 \u0448\u0442\u0443\u043a.\u00a0<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u0435\u043d\u044c\u0448\u0435 100 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438\u043b\u0438 5\u20147 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437 \u0432 \u043a\u0432\u0430\u0440\u0442\u0430\u043b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0437\u043b\u043e\u0441\u0442\u043d\u044b\u0435 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435.<\/p>\n<p>\u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441\u0438\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435? \u0418\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 25? \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c\u0438 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0447\u0430\u0449\u0435 \u0438 \u0431\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u043d\u0435\u0435. \u0412\u0435\u0434\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0438 \u043d\u0430 60 \u0441\u0435\u043a\u0443\u043d\u0434 \u0437\u0430 \u0433\u043e\u0434 \u043d\u0430\u043a\u0430\u043f\u0430\u044e\u0442 \u043d\u0430 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043f\u0443\u0441\u0442\u0443\u044e \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0417\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<h3>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431<\/h3>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438, \u043d\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0434\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0447\u0442\u043e \u043c\u044b \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u043b\u0438 \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u0435. \u0410 \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c? \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0435 \u043d\u0430\u0434\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<h4>\u041a\u0430\u043a \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043c\u0435\u0440\u0438\u0442\u044c<\/h4>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u043e\u043a\u0440\u0443\u0433 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f. \u0412\u0435\u0434\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u043b\u0433\u043e, \u0435\u0449\u0451 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u043d\u0438 \u043e\u0442 \u043a\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c, \u0434\u0430 \u0438 \u043e\u0442 \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, app. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043d \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0441\u0435\u0431\u0435 \u0441\u043e\u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u043e\u043a\u0440\u0443\u0433 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, 20 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0442\u043e \u043e\u043d \u043f\u043b\u043e\u0445\u043e\u0439 \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c core-network, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0444\u0430\u0441\u0430\u0434\u043e\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0435\u0442\u044c\u044e, \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0438\u043b\u044b 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0414\u0430 \u0438 \u043d\u0435 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u044f\u043c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 Gradle Worker\u2019\u044b, \u0432\u0435\u0434\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u043d\u0438\u043c \u043c\u043e\u0433\u0443\u0442 \u0432 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c core-database \u0438\u043b\u0438 core-location.<\/p>\n<p>\u0421\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043c\u043d\u043e\u0433\u043e\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0441 \u0432\u0430\u0448\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. \u041d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u00ab\u0443\u0433\u043e\u043b\u043e\u0432\u043d\u043e\u043c \u0434\u0435\u043b\u0435\u00bb \u043e \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0430\u0445 \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u044b\u0435 \u0443\u043b\u0438\u043a\u0438.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Gradle, \u0438 \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441 \u044d\u0442\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u0430\u0447\u043d\u0451\u043c \u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u043c \u044d\u0442\u043e \u043a\u043e\u0434\u043e\u043c.<\/p>\n<h4>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 Timeline \u0432 Gradle Scan: \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e Gradle Worker, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. \u041d\u0430 \u0433\u043b\u0430\u0437 \u043b\u0435\u0433\u043a\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0438.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0445 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043d\u043e \u0438 \u043f\u043e\u043c\u0435\u0440\u0438\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 Gradle Worker \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u043b. \u0418 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0438\u043c \u0432\u0438\u043d\u043e\u0432\u043d\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432. \u0427\u0442\u043e \u0438\u0437 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Gradle, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u0430\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438?<\/p>\n<h4>\u0427\u0442\u043e \u043d\u0430\u043c \u0434\u0430\u0451\u0442 Gradle<\/h4>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, Gradle \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 Task.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043d\u0446\u0430 \u044d\u0442\u043e\u0439 Task. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 Task.\u00a0<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f. \u041d\u0435\u043c\u043d\u043e\u0433\u043e. \u041c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u00ab\u0418 \u0440\u0430\u0434\u0438 \u044d\u0442\u043e\u0433\u043e \u0442\u044b \u0440\u0438\u0441\u043e\u0432\u0430\u043b \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b? \u0421\u0435\u0440\u044c\u0451\u0437\u043d\u043e?\u00bb. \u0418 \u043c\u043e\u0439 \u043e\u0442\u0432\u0435\u0442: \u00ab\u0414\u0430, \u0442\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435\u00bb.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u043d\u043e \u0447\u0442\u043e \u0441 \u043d\u0438\u043c\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<h4>\u0427\u0442\u043e \u043d\u0430\u043c \u0441 \u044d\u0442\u0438\u043c \u0434\u0435\u043b\u0430\u0442\u044c?<\/h4>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u0421\u043a\u043e\u0440\u0435\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0432\u0435\u0434\u044c \u0442\u0430\u043a \u0447\u0443\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0440\u0430\u0432\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0431\u043e\u0440\u043a\u0438. \u0414\u043b\u0438\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u043a\u0430 87 \u0441\u0435\u043a\u0443\u043d\u0434, \u0437\u043d\u0430\u0447\u0438\u0442 \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0438\u0437 87 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0412\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0431\u0443\u0434\u0443\u0442 \u043c\u043e\u0434\u0443\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u0432 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0415\u0441\u043b\u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0434\u0432\u0443\u0445 Gradle Worker, \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 timeline, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044b\u0439 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b.\u00a0<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0443\u0447\u0438\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u0438. \u041f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u0435\u0441\u043b\u0438 \u0432 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c 2 (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Gradle Worker), \u0442\u043e \u043d\u0430\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e 1 \u0431\u0430\u043b\u043b.\u00a0<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438, 1 \u0431\u0430\u043b\u043b \u0443 \u043c\u043e\u0434\u0443\u043b\u044f \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0435\u0433\u043e \u0436\u0434\u0443\u0442, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0431\u044b\u043b \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0432\u0440\u044f\u0434 \u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 Gradle Worker, \u0442\u043e \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0430\u0436 \u0442\u0440\u0451\u0445 Gradle Worker.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0435\u0439, \u043d\u043e \u0447\u0443\u0442\u044c \u043e\u0431\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0436\u0438\u0440\u043a\u043e\u043c. \u0412\u0441\u0451 \u0442\u0430\u043a \u0436\u0435 \u0431\u0435\u0436\u0438\u043c \u043f\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u043b\u043b\u043e\u0432 \u0440\u0430\u0432\u043d\u043e\u0435 \u043e\u0431\u0449\u0435\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 Gradle Worker \u043c\u0438\u043d\u0443\u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u0445 Gradle Worker \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u0445 Gradle Worker. \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044f \u0434\u0430\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0432\u0435\u0440\u0445\u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443: (wA &#8212; wU) \/ wU, \u0433\u0434\u0435 wA \u044d\u0442\u043e \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e Gradle Worker, \u0430 wU \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043d\u044f\u0442\u044b\u0445 Gradle Worker.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432\u043d\u0451\u0441 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0438 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0434\u0432\u0430 Gradle Worker \u0438\u0437 \u0442\u0440\u0451\u0445, \u0442\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0437\u0430\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u043e 0.5 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0410 \u0435\u0441\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d, \u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0430\u0436 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0442\u043e\u0447\u043d\u044b\u043c. \u0422\u0430\u043a \u043e\u043d\u043e \u0438 \u0435\u0441\u0442\u044c, \u043d\u043e \u0442\u0443\u0442 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0432\u0430\u0436\u043d\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0446\u0435\u043b\u044c \u2014 \u043d\u0435 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u043e \u0432\u0440\u0435\u0434\u043d\u043e\u0441\u0442\u0438, \u0430 \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u044b\u0435 \u0432\u0440\u0435\u0434\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438. \u0412\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u0440\u043e\u0441\u0442\u043e\u044f\u043c \u043d\u0430 \u043f\u043e\u043b\u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0442\u043e \u043d\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0432\u044b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0435\u043c \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0438\u0433\u0440\u0430\u0442\u044c.<\/p>\n<p>\u0410 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430?<\/p>\n<h3>\u041a\u043e\u0434<\/h3>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 Gradle. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e <a href=\"https:\/\/docs.gradle.org\/current\/userguide\/custom_plugins.html#custom_plugins\"><u>Gradle Plugin<\/u><\/a>.<\/p>\n<h4>\u0414\u043e\u0441\u0442\u0430\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/h4>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e Gradle \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u0448\u0442\u0443\u043a\u0443 \u043a\u0430\u043a <a href=\"https:\/\/docs.gradle.org\/current\/javadoc\/org\/gradle\/api\/services\/BuildService.html\"><u>BuildService<\/u><\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/docs.gradle.org\/current\/javadoc\/org\/gradle\/tooling\/events\/OperationCompletionListener.html\"><u>OperationCompletionListener<\/u><\/a>.\u00a0\u00a0<\/p>\n<pre><code class=\"kotlin\">public interface<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-408771","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/408771","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=408771"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/408771\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=408771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=408771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=408771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}