{"id":3804,"date":"2022-02-17T10:11:03","date_gmt":"2022-02-17T10:11:03","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/ways-to-increase-your-rails-performance\/"},"modified":"2024-07-04T21:01:27","modified_gmt":"2024-07-04T21:01:27","slug":"budai-kaip-padidinti-begiu-nasuma","status":"publish","type":"post","link":"https:\/\/thecodest.co\/lt\/blog\/ways-to-increase-your-rails-performance\/","title":{"rendered":"Kaip padidinti \"Rails\" na\u0161um\u0105"},"content":{"rendered":"<h2 class=\"wp-block-heading\"><strong>Rubinas pirmas<\/strong><\/h2>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/lt\/case-studies\/providing-a-team-of-ruby-developers-for-a-fintech-company\/\">Ruby<\/a><\/strong> yra daug objekt\u0173 orientuota kalba. Ties\u0105 sakant, (beveik) viskas <strong>Ruby<\/strong> yra objektas. Nereikaling\u0173 objekt\u0173 k\u016brimas gali kainuoti programai daug papildomos atminties, tod\u0117l reikia to vengti.<\/p>\n\n\n\n<p>Norint i\u0161matuoti skirtum\u0105, naudosime <em><a href=\"https:\/\/github.com\/SamSaffron\/memory_profiler\">memory_profiler<\/a><\/em> perlas ir integruotas lyginamosios analiz\u0117s modulis, skirtas laiko na\u0161umui matuoti.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Naudokite \"bang!\" metodus eilut\u0117ms<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">reikalauti \"memory_profiler\"\n\nreport = MemoryProfiler.report do\n<a href=\"https:\/\/thecodest.co\/lt\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">duomenys<\/a> = \"X\" * 1024 * 1024 * 100\ndata = data.downcase\npabaiga\n\nreport.pretty_print<\/code><\/pre>\n\n\n\n<p>Toliau pateiktame s\u0105ra\u0161e suk\u016br\u0117me 100 MB eilut\u0119 ir suma\u017einome kiekvien\u0105 joje esant\u012f simbol\u012f. M\u016bs\u0173 lyginamasis rodiklis rodo, kad <a href=\"https:\/\/thecodest.co\/lt\/blog\/why-us-companies-are-opting-for-polish-developers\/\">mus<\/a> \u0161i\u0105 ataskait\u0105:<\/p>\n\n\n\n<p><em>I\u0161 viso skirta: 210765044 bait\u0173 (6 objektai)<\/em><\/p>\n\n\n\n<p>Ta\u010diau jei 6 eilut\u0119 pakeisime:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code>data.downcase!<\/code><\/code><\/pre>\n\n\n\n<p><code> <\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Fail\u0173 skaitymas eilut\u0117 po eilut\u0117s<\/strong><\/h2>\n\n\n\n<p>Tariamai mums reikia i\u0161 csv failo gauti did\u017eiul\u012f 2 milijon\u0173 \u012fra\u0161\u0173 duomen\u0173 rinkin\u012f. Paprastai tai atrodyt\u0173 taip:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">reikalauti 'benchmark'\n\nBenchmark.bm do |x|\nx.report do\nFile.readlines(\"2mrecords.csv\").map! {|line| line.split(\",\")}\nend\npabaiga<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">naudotojas sistema i\u0161 viso realus\n\n12.797000 2.437000 15.234000 (106.319865)<\/code><\/pre>\n\n\n\n<p>Visi\u0161kai atsisi\u0173sti fail\u0105 prireik\u0117 daugiau nei 106 sekund\u017ei\u0173. Gana daug! Ta\u010diau \u0161\u012f proces\u0105 galime pagreitinti pakeisdami <em>\u017eem\u0117lapis!<\/em> metod\u0105 su paprastu <em>o<\/em> kilpa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">reikalauti 'benchmark'\n\nBenchmark.bm do |x|\nx.report do\nfile = File.open(\"2mrecords.csv\", \"r\")\nwhile line = file.gets\nline.split(\",\")\nend\nend\nend<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">naudotojas sistema i\u0161 viso realus\n\n6.078000 0.250000 6.328000 ( 6.649422)<\/code><\/pre>\n\n\n\n<p>Nuo tada, kai buvo \u012fdiegta <em>\u017eem\u0117lapis!<\/em> metodas priklauso konkre\u010diai klasei, pvz. <em>Hash#map<\/em> arba <em>Array#map<\/em>, kur <strong>Ruby<\/strong> atmintyje i\u0161saugos kiekvien\u0105 parsi\u0173stos rinkmenos eilut\u0119, kol ji bus vykdoma. <strong>\"Ruby\" \u0161iuk\u0161li\u0173 surink\u0117jas <\/strong>neatlaisvins atminties, kol \u0161ie iteratoriai nebus visi\u0161kai \u012fvykdyti. Ta\u010diau skaitant eilut\u0119 po eilut\u0117s, GC perskirstys atmint\u012f i\u0161 ankstesni\u0173 eilu\u010di\u0173, kai tai n\u0117ra b\u016btina.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Venkite metod\u0173 iteratori\u0173 didesn\u0117se kolekcijose<\/strong><\/h2>\n\n\n\n<p>\u0160is punktas yra ankstesnio punkto t\u0119sinys, kuriame pateikiamas da\u017eniau pasitaikantis pavyzdys. Kaip jau min\u0117jau, <a href=\"https:\/\/thecodest.co\/blog\/high-demand-for-ruby-developers\/\">Ruby<\/a> iteratoriai yra objekt\u0173 metodai, tod\u0117l jie neatlaisvina atminties, kol yra atliekami. Nedideliu mastu \u0161is skirtumas yra beprasmis (o metodai, pvz. <em>\u017eem\u0117lapis<\/em> atrodo lengviau skaitomas). Ta\u010diau, kai kalbama apie didesnius duomen\u0173 rinkinius, visada verta apsvarstyti galimyb\u0119 pakeisti j\u012f paprastesn\u0117mis kilpomis. Kaip toliau pateiktame pavyzdyje:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">element\u0173 skai\u010dius = 10000000\nrandoms = Array.new(numberofelements) { rand(10) }\n\nrandoms.each do |line|\n#do something\npabaiga<\/code><\/pre>\n\n\n\n<p>ir po refaktorizavimo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">element\u0173 skai\u010dius = 10000000\nrandoms = Array.new(numberofelements) { rand(10) }\n\nwhile randoms.count &gt; 0\nline = randoms.shift\n1TP69Darykite k\u0105 nors\npabaiga\n\"`<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Naudokite String::&lt;&lt; metod\u0105<\/strong><\/h2>\n\n\n\n<p>Tai greitas, ta\u010diau itin naudingas patarimas. Jei vien\u0105 eilut\u0119 pridedate prie kitos naudodami += operatori\u0173 u\u017e kadro. <strong>Ruby <\/strong> bus sukurtas papildomas objektas. Taigi, tai:\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code> a = \"X\"\n b = \"Y\"\n a += b<\/code><\/code><\/pre>\n\n\n\n<p>I\u0161 tikr\u0173j\u0173 tai rei\u0161kia \u0161tai k\u0105:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code> a = \"X\"\n b = \"Y\"\n c = a + b\n a = c<\/code><\/code><\/pre>\n\n\n\n<p>Operatorius to i\u0161vengt\u0173 ir sutaupyt\u0173 \u0161iek tiek atminties:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code><code> a = \"X\"\n b = \"Y\"\n a &lt;&lt; b<\/code><\/code><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pakalb\u0117kime apie \"Rails<\/strong><\/h2>\n\n\n\n<p>Svetain\u0117 <strong>\"Rails\" sistema <\/strong> turi daug \"<em>Gothas<\/em>\", kuri leist\u0173 optimizuoti j\u016bs\u0173 <a href=\"https:\/\/thecodest.co\/lt\/dictionary\/what-is-code-refactoring\/\">kodas<\/a> greitai ir be dideli\u0173 papildom\u0173 pastang\u0173.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Itin skubus krovimas AKA n+1 u\u017eklausos problema<\/strong><\/h2>\n\n\n\n<p>Tarkime, kad turime du susietus modelius: \"Post\" ir \"Author\":<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">klas\u0117 Author &lt; ApplicationRecord\nhas_many :posts\nend\n\nklas\u0117 Post &lt; ApplicationRecord\nbelong_to :author\nend<\/code><\/pre>\n\n\n\n<p>Norime gauti visus \u012fra\u0161us i\u0161 m\u016bs\u0173 valdiklio ir pateikti juos rodinyje su j\u0173 autoriais:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">valdiklis\n\ndef index\n@posts = Post.all.limit(20)\nend\n\nper\u017ei\u016br\u0117ti<\/code><\/pre>\n\n\n\n<p>Valdiklyje, <a href=\"https:\/\/thecodest.co\/blog\/a-simple-ruby-application-from-scratch-with-active-record\/\">ActiveRecord<\/a> sukursime tik vien\u0105 u\u017eklaus\u0105, kad rastume savo prane\u0161imus. Ta\u010diau v\u0117liau ji taip pat sukurs dar 20 u\u017eklaus\u0173, kad surast\u0173 kiekvien\u0105 autori\u0173 - tai u\u017eims papildomai laiko! Laimei, \"Rails\" turi greit\u0105 sprendim\u0105, kaip sujungti \u0161ias u\u017eklausas \u012f vien\u0105. Naudodami <em>apima<\/em> metod\u0105, galime taip perra\u0161yti savo valdikl\u012f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code> def index\n     @posts = Post.all.includes(:author).limit(20)\n end<\/code><\/code><\/pre>\n\n\n\n<p>Kol kas \u012f vien\u0105 u\u017eklaus\u0105 bus paimti tik reikalingi duomenys.\u00a0<\/p>\n\n\n\n<p>Taip pat galite naudoti kitus brangakmenius, pvz. <a href=\"https:\/\/github.com\/flyerhzm\/bullet\">kulka<\/a> pritaikyti vis\u0105 proces\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Skambinkite tik tam, ko reikia<\/strong><\/h2>\n\n\n\n<p>Kitas naudingas metodas, padedantis padidinti \"ActiveRecord\" greit\u012f, yra skambinti tik tiems atributams, kurie reikalingi dabartiniams tikslams. Tai ypa\u010d naudinga, kai j\u016bs\u0173 programa pradeda augti ir did\u0117ja lentel\u0117s stulpeli\u0173 skai\u010dius.<\/p>\n\n\n\n<p>Kaip pavyzd\u012f paimkime ankstesn\u012f kod\u0105 ir tarkime, kad mums reikia i\u0161 autori\u0173 i\u0161rinkti tik vardus. Taigi galime perra\u0161yti savo valdikl\u012f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code><code> def index\n     @posts = Post.all.includes(:author).select(\"name\").limit(20)\n end<\/code><\/code><\/code><\/pre>\n\n\n\n<p>Dabar nurodome valdikliui praleisti visus atributus, i\u0161skyrus t\u0105, kurio mums reikia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tinkamai atvaizduokite dalinius elementus<\/strong><\/h2>\n\n\n\n<p>Tarkime, kad norime sukurti atskir\u0105 dalin\u012f \u012fra\u0161ams i\u0161 ankstesni\u0173 pavyzd\u017ei\u0173:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code><code><code>\n<\/code><\/code><\/code><\/code><\/pre>\n\n\n\n<p>I\u0161 pirmo \u017evilgsnio \u0161is kodas atrodo teisingas. Ta\u010diau, kai reikia atvaizduoti daugiau prane\u0161im\u0173, visas procesas bus gerokai l\u0117tesnis. Taip yra tod\u0117l, kad <strong>B\u0117giai <\/strong> dar kart\u0105 i\u0161kvie\u010dia m\u016bs\u0173 dalin\u012f su nauja iteracija. Tai galime i\u0161taisyti naudodami <em>kolekcijos<\/em> funkcija:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code><code><code><\/code><\/code><\/code><\/code><\/pre>\n\n\n\n<p>Dabar, <strong>B\u0117giai<\/strong> automati\u0161kai nustatys, kuris \u0161ablonas tur\u0117t\u0173 b\u016bti naudojamas, ir inicializuos j\u012f tik vien\u0105 kart\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Naudokite fonin\u012f apdorojim\u0105<\/strong><\/h2>\n\n\n\n<p>Kiekvienas procesas, kuris u\u017eima daugiau laiko ir n\u0117ra labai svarbus j\u016bs\u0173 dabartiniam srautui, gali b\u016bti laikomas tinkamu kandidatu \u012f fonin\u012f apdorojim\u0105, pvz., el. lai\u0161k\u0173 siuntimas, statistini\u0173 duomen\u0173 rinkimas ar periodini\u0173 ataskait\u0173 teikimas.&nbsp;<\/p>\n\n\n\n<p><strong>Sidekiq<\/strong> yra da\u017eniausiai fono apdorojimui naudojamas brangakmenis. Jis naudoja <strong>Redis<\/strong> u\u017eduotims saugoti. Taip pat galite valdyti fonini\u0173 proces\u0173 sraut\u0105, suskirstyti juos \u012f atskiras eiles ir valdyti kiekvieno i\u0161 j\u0173 atminties naudojim\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ra\u0161ykite ma\u017eiau kodo, naudokite daugiau brangakmeni\u0173<\/strong><\/h2>\n\n\n\n<p><strong>B\u0117giai <\/strong> sugalvojo daugyb\u0119 brangakmeni\u0173, kurie ne tik palengvina j\u016bs\u0173 gyvenim\u0105 ir pagreitina <a href=\"https:\/\/thecodest.co\/lt\/blog\/how-the-codests-team-extension-model-can-transform-your-in-house-development-team\/\">k\u016brimo procesas<\/a>, bet taip pat padidinsite savo programos na\u0161umo greit\u012f. Tokie brangakmeniai kaip \"Devise\" ar \"Pundit\" paprastai yra gerai i\u0161bandyti d\u0117l savo grei\u010dio ir veikia grei\u010diau bei saugiau nei tam pa\u010diam tikslui pagal u\u017esakym\u0105 para\u0161ytas kodas.<\/p>\n\n\n\n<p>Jei kilt\u0173 klausim\u0173, kaip pagerinti <em>\"Rails\" na\u0161umas<\/em>, pasiekti <strong><a href=\"https:\/\/thecodest.co\">The Codest in\u017einieriai<\/a><\/strong> pasitarti d\u0117l savo abejoni\u0173.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/thecodest.co\/careers#offers]\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/ruby-1-.png\" alt=\"&quot;Ruby&quot; programuotojo pasi\u016blymas\"\/><\/a><\/figure>\n\n\n\n<p><strong>Skaityti daugiau:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/pros-and-cons-of-ruby-software-development\/\">\"Ruby\" programin\u0117s \u012frangos k\u016brimo privalumai ir tr\u016bkumai<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">B\u0117giai ir kitos transporto priemon\u0117s<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">\"Rails\" k\u016brimas naudojant TMUX, \"Vim\", Fzf + Ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Nepaisant daugyb\u0117s privalum\u0173, Ruby on Rails vis dar laikoma palyginti l\u0117ta \u017einiatinklio sistema. Visi \u017einome, kad \"Twitter\" paliko \"Rails\" ir pasirinko \"Scala\". Ta\u010diau atlik\u0119 kelet\u0105 gudri\u0173 patobulinim\u0173 galite paleisti savo program\u0117l\u0119 gerokai grei\u010diau!<\/p>","protected":false},"author":2,"featured_media":3805,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Increase Rails Performance - The Codest<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/lt\/tinklarastis\/budai-kaip-padidinti-begiu-nasuma\/\" \/>\n<meta property=\"og:locale\" content=\"lt_LT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Increase Rails Performance\" \/>\n<meta property=\"og:description\" content=\"Despite its numerous advantages, Ruby on Rails is still considered to be a relatively slow web framework. We all know that Twitter has left Rails in favor of Scala. However, with a few cleaver improvements you can run your app significantly faster!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/lt\/tinklarastis\/budai-kaip-padidinti-begiu-nasuma\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-17T10:11:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-04T21:01:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/ways_to_increase_your_rails_performance.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"How to Increase Rails Performance\",\"datePublished\":\"2022-02-17T10:11:03+00:00\",\"dateModified\":\"2024-07-04T21:01:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\"},\"wordCount\":856,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/ways_to_increase_your_rails_performance.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"lt-LT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\",\"name\":\"How to Increase Rails Performance - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/ways_to_increase_your_rails_performance.png\",\"datePublished\":\"2022-02-17T10:11:03+00:00\",\"dateModified\":\"2024-07-04T21:01:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#breadcrumb\"},\"inLanguage\":\"lt-LT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"lt-LT\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/ways_to_increase_your_rails_performance.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/ways_to_increase_your_rails_performance.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Increase Rails Performance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"lt-LT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"lt-LT\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"lt-LT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/lt\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kaip padidinti b\u0117gi\u0173 na\u0161um\u0105 - The Codest","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/lt\/tinklarastis\/budai-kaip-padidinti-begiu-nasuma\/","og_locale":"lt_LT","og_type":"article","og_title":"How to Increase Rails Performance","og_description":"Despite its numerous advantages, Ruby on Rails is still considered to be a relatively slow web framework. We all know that Twitter has left Rails in favor of Scala. However, with a few cleaver improvements you can run your app significantly faster!","og_url":"https:\/\/thecodest.co\/lt\/tinklarastis\/budai-kaip-padidinti-begiu-nasuma\/","og_site_name":"The Codest","article_published_time":"2022-02-17T10:11:03+00:00","article_modified_time":"2024-07-04T21:01:27+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/ways_to_increase_your_rails_performance.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"How to Increase Rails Performance","datePublished":"2022-02-17T10:11:03+00:00","dateModified":"2024-07-04T21:01:27+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/"},"wordCount":856,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/ways_to_increase_your_rails_performance.png","articleSection":["Software Development"],"inLanguage":"lt-LT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/","url":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/","name":"Kaip padidinti b\u0117gi\u0173 na\u0161um\u0105 - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/ways_to_increase_your_rails_performance.png","datePublished":"2022-02-17T10:11:03+00:00","dateModified":"2024-07-04T21:01:27+00:00","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#breadcrumb"},"inLanguage":"lt-LT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/"]}]},{"@type":"ImageObject","inLanguage":"lt-LT","@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/ways_to_increase_your_rails_performance.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/ways_to_increase_your_rails_performance.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"How to Increase Rails Performance"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"lt-LT"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"lt-LT","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"lt-LT","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/lt\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts\/3804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/comments?post=3804"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts\/3804\/revisions"}],"predecessor-version":[{"id":8428,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts\/3804\/revisions\/8428"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/media\/3805"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/media?parent=3804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/categories?post=3804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/tags?post=3804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}