{"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":"manieren-om-je-spoorprestaties-te-verbeteren","status":"publish","type":"post","link":"https:\/\/thecodest.co\/nl\/blog\/ways-to-increase-your-rails-performance\/","title":{"rendered":"Hoe de prestaties van Rails verhogen"},"content":{"rendered":"<h2 class=\"wp-block-heading\"><strong>Eerst Ruby<\/strong><\/h2>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/nl\/case-studies\/providing-a-team-of-ruby-developers-for-a-fintech-company\/\">Ruby<\/a><\/strong> is een sterk objectgeori\u00ebnteerde taal. In feite is (bijna) alles in <strong>Ruby<\/strong> een object is. Het maken van onnodige objecten kan je programma veel extra geheugengebruik kosten, dus je moet dit vermijden.<\/p>\n\n\n\n<p>Om het verschil te meten, gebruiken we een <em><a href=\"https:\/\/github.com\/SamSaffron\/memory_profiler\">geheugen_profiler<\/a><\/em> gem en een ingebouwde Benchmark-module om de tijdprestaties te meten.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Gebruik bang! methoden op strings<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">vereist \"geheugen_profiler\".\n\nrapport = MemoryProfiler.report do\n<a href=\"https:\/\/thecodest.co\/nl\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">gegevens<\/a> = \"X\" * 1024 * 1024 * 100\ndata = data.downcase\neinde\n\nrapport.pretty_print<\/code><\/pre>\n\n\n\n<p>In de onderstaande lijst hebben we een string van 100 MB gemaakt en elk karakter daarin gedowncased. Onze benchmark geeft <a href=\"https:\/\/thecodest.co\/nl\/blog\/why-us-companies-are-opting-for-polish-developers\/\">us<\/a> het volgende verslag:<\/p>\n\n\n\n<p><em>Totaal toegewezen: 210765044 bytes (6 objecten)<\/em><\/p>\n\n\n\n<p>Als we regel 6 echter vervangen door:<\/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>Bestanden regel voor regel lezen<\/strong><\/h2>\n\n\n\n<p>Vermoedelijk moeten we een enorme gegevensverzameling van 2 miljoen records ophalen uit een csv-bestand. Typisch zou het er zo uitzien:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">vereisen 'benchmark'\n\nBenchmark.bm do |x|\nx.report do\nFile.readlines(\"2mrecords.csv\").map! {|line| line.split(\",\")}\nend\neinde<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">gebruiker systeem totaal echt\n\n12.797000 2.437000 15.234000 (106.319865)<\/code><\/pre>\n\n\n\n<p>Het kostte ons meer dan 106 seconden om het bestand volledig te downloaden. Behoorlijk veel! Maar we kunnen dit proces versnellen door de <em>kaart!<\/em> methode met een eenvoudige <em>terwijl<\/em> lus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">vereisen 'benchmark'\n\nBenchmark.bm do |x|\nx.report do\nbestand = bestand.open(\"2mrecords.csv\", \"r\")\nwhile regel = bestand.gets\nregel.split(\",\")\neinde\neinde\neinde<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">gebruiker systeem totaal echt\n\n6.078000 0.250000 6.328000 ( 6.649422)<\/code><\/pre>\n\n\n\n<p>De looptijd is nu drastisch gedaald sinds de <em>kaart!<\/em> methode behoort tot een specifieke klasse, zoals <em>Hash#map<\/em> of <em>Array#map<\/em>waarbij <strong>Ruby<\/strong> zal elke regel van het geparseerde bestand in het geheugen opslaan zolang het wordt uitgevoerd. <strong>Ruby's vuilnisman <\/strong>zal het geheugen niet vrijgeven voordat die iterators volledig zijn uitgevoerd. Door het echter regel voor regel te lezen, zal GC het geheugen van de vorige regels verplaatsen als dat niet nodig is.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Vermijd methode iterators op grotere verzamelingen<\/strong><\/h2>\n\n\n\n<p>Dit is een uitbreiding van het vorige punt met een meer algemeen voorbeeld. Zoals ik al zei, <a href=\"https:\/\/thecodest.co\/blog\/high-demand-for-ruby-developers\/\">Ruby<\/a> iterators zijn objectmethoden en geven het geheugen niet vrij zolang ze worden uitgevoerd. Op kleine schaal is het verschil zinloos (en methoden zoals <em>kaart<\/em> leesbaarder lijkt). Als het echter om grotere gegevenssets gaat, is het altijd een goed idee om te overwegen deze te vervangen door meer eenvoudige lussen. Zoals in het onderstaande voorbeeld:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">aantalelementen = 10000000\nrandoms = Array.new(numberofelements) { rand(10) }\n\nrandoms.each do\n#doe iets\neinde<\/code><\/pre>\n\n\n\n<p>en na het refactoren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">aantalelementen = 10000000\nrandoms = Array.new(numberofelements) { rand(10) }\n\nterwijl randoms.count &gt; 0\nregel = randoms.shift\n#doe iets\neinde\n\"`<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Gebruik de methode String::&lt;&lt;<\/strong><\/h2>\n\n\n\n<p>Dit is een snelle maar bijzonder nuttige tip. Als je een string toevoegt aan een andere met de += operator achter de schermen. <strong>Ruby <\/strong> zal een extra object maken. Dus dit:\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>Betekent eigenlijk dit:<\/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>Operator zou dat vermijden, waardoor je wat geheugen bespaart:<\/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>Laten we het over Rails hebben<\/strong><\/h2>\n\n\n\n<p>De <strong>Rails raamwerk <\/strong> bezit veel \"<em>gotchas<\/em>\" waarmee je je <a href=\"https:\/\/thecodest.co\/nl\/dictionary\/what-is-code-refactoring\/\">code<\/a> snel en zonder al te veel extra moeite.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Eager Loading AKA n+1 query probleem<\/strong><\/h2>\n\n\n\n<p>Laten we aannemen dat we twee geassocieerde modellen hebben, Post en Auteur:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">klasse Auteur &lt; Toepassingsregistratie\nheeft_veel :berichten\neinde\n\nklasse Post &lt; Toepassingsrecord\nhoort bij :auteur\neinde<\/code><\/pre>\n\n\n\n<p>We willen alle berichten ophalen in onze controller en ze weergeven in een weergave met hun auteurs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">controller\n\ndef index\n@posts = Post.all.limit(20)\neinde\n\nbekijken<\/code><\/pre>\n\n\n\n<p>In de controller, <a href=\"https:\/\/thecodest.co\/blog\/a-simple-ruby-application-from-scratch-with-active-record\/\">ActiveRecord<\/a> zal slechts \u00e9\u00e9n query aanmaken om onze berichten te vinden. Maar later zal het ook nog eens 20 query's genereren om elke auteur te vinden - wat extra tijd kost! Gelukkig heeft Rails een snelle oplossing om die query's te combineren tot \u00e9\u00e9n query. Door de <em>omvat<\/em> methode kunnen we onze controller op deze manier herschrijven:<\/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 einde<\/code><\/code><\/pre>\n\n\n\n<p>Voorlopig worden alleen de benodigde gegevens opgehaald in \u00e9\u00e9n query.\u00a0<\/p>\n\n\n\n<p>Je kunt ook andere edelstenen gebruiken, zoals <a href=\"https:\/\/github.com\/flyerhzm\/bullet\">kogel<\/a> om het hele proces aan te passen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Bel alleen wat je nodig hebt<\/strong><\/h2>\n\n\n\n<p>Een andere handige techniek om de snelheid van ActiveRecord te verhogen is door alleen die attributen aan te roepen die nodig zijn voor je huidige doeleinden. Dit is vooral handig als je app begint te groeien en het aantal kolommen per tabel ook toeneemt.<\/p>\n\n\n\n<p>Laten we onze vorige code als voorbeeld nemen en aannemen dat we alleen namen uit auteurs hoeven te selecteren. Dus kunnen we onze controller herschrijven:<\/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(\"naam\").limit(20)\n einde<\/code><\/code><\/code><\/pre>\n\n\n\n<p>Nu instrueren we onze controller om alle attributen over te slaan, behalve degene die we nodig hebben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Partialen goed weergeven<\/strong><\/h2>\n\n\n\n<p>Laten we zeggen dat we een aparte partitie willen maken voor onze berichten uit eerdere voorbeelden:<\/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>Op het eerste gezicht ziet deze code er correct uit. Als er echter een groter aantal berichten moet worden gerenderd, zal het hele proces aanzienlijk langzamer verlopen. Dit komt doordat <strong>Rails <\/strong> roept onze partial opnieuw op met een nieuwe iteratie. We kunnen dit oplossen door de <em>collecties<\/em> functie:<\/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>Nu, <strong>Rails<\/strong> zal automatisch uitzoeken welke sjabloon gebruikt moet worden en deze slechts eenmaal initialiseren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Achtergrondverwerking gebruiken<\/strong><\/h2>\n\n\n\n<p>Elk proces dat meer tijd in beslag neemt en niet cruciaal is voor je huidige stroom, kan worden beschouwd als een goede kandidaat voor achtergrondverwerking, bijvoorbeeld het verzenden van e-mails, het verzamelen van statistieken of het leveren van periodieke rapporten.&nbsp;<\/p>\n\n\n\n<p><strong>Sidekiq<\/strong> is de meest gebruikte edelsteen voor achtergrondverwerking. Het gebruikt <strong>Redis<\/strong> om taken op te slaan. Je kunt er ook de stroom van je achtergrondprocessen mee regelen, ze opsplitsen in aparte wachtrijen en het geheugengebruik per proces beheren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Minder code schrijven, meer edelstenen gebruiken<\/strong><\/h2>\n\n\n\n<p><strong>Rails <\/strong> kwam met een enorm aantal juweeltjes die niet alleen je leven gemakkelijker maken en de <a href=\"https:\/\/thecodest.co\/nl\/blog\/how-the-codests-team-extension-model-can-transform-your-in-house-development-team\/\">ontwikkelingsproces<\/a>maar ook de prestatiesnelheid van je applicatie verhogen. Gems zoals Devise of Pundit zijn meestal goed getest op hun snelheid en werken sneller en veiliger dan code die op maat is geschreven voor hetzelfde doel.<\/p>\n\n\n\n<p>Als je vragen hebt over het verbeteren van <em>Rails prestaties<\/em>bereiken <strong><a href=\"https:\/\/thecodest.co\">The Codest ingenieurs<\/a><\/strong> uit om je twijfels te raadplegen.<\/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=\"Ruby Ontwikkelaar Aanbod\"\/><\/a><\/figure>\n\n\n\n<p><strong>Lees meer:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/pros-and-cons-of-ruby-software-development\/\">Voor- en nadelen van Ruby softwareontwikkeling<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">Rails en andere transportmiddelen<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">Rails ontwikkelen met TMUX, Vim, Fzf + Ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Ondanks de vele voordelen wordt Ruby on Rails nog steeds beschouwd als een relatief traag webraamwerk. We weten allemaal dat Twitter Rails heeft verlaten ten gunste van Scala. Met een paar slimme verbeteringen kun je je app echter aanzienlijk sneller laten draaien!<\/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\/nl\/blog\/manieren-om-je-spoorprestaties-te-verbeteren\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/blog\/manieren-om-je-spoorprestaties-te-verbeteren\/\" \/>\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\":\"nl-NL\",\"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\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@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\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@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\":\"nl-NL\",\"@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\\\/nl\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hoe de prestaties van Rails verhogen - 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\/nl\/blog\/manieren-om-je-spoorprestaties-te-verbeteren\/","og_locale":"nl_NL","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\/nl\/blog\/manieren-om-je-spoorprestaties-te-verbeteren\/","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":"nl-NL","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":"Hoe de prestaties van Rails verhogen - 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":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@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":"nl-NL"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@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":"nl-NL","@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\/nl\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts\/3804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/comments?post=3804"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts\/3804\/revisions"}],"predecessor-version":[{"id":8428,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts\/3804\/revisions\/8428"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/media\/3805"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/media?parent=3804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/categories?post=3804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/tags?post=3804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}