{"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":"les-moyens-daugmenter-la-performance-de-vos-rails","status":"publish","type":"post","link":"https:\/\/thecodest.co\/fr\/blog\/ways-to-increase-your-rails-performance\/","title":{"rendered":"Comment augmenter les performances de Rails"},"content":{"rendered":"<h2 class=\"wp-block-heading\"><strong>Rubis d'abord<\/strong><\/h2>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/fr\/case-studies\/providing-a-team-of-ruby-developers-for-a-fintech-company\/\">Rubis<\/a><\/strong> est un langage fortement orient\u00e9 objet. En fait, (presque) tout dans <strong>Rubis<\/strong> est un objet. La cr\u00e9ation d'objets inutiles peut co\u00fbter cher \u00e0 votre programme en termes d'utilisation de la m\u00e9moire, c'est pourquoi vous devez l'\u00e9viter.<\/p>\n\n\n\n<p>Pour mesurer la diff\u00e9rence, nous utiliserons un <em><a href=\"https:\/\/github.com\/SamSaffron\/memory_profiler\">memory_profiler<\/a><\/em> et un module int\u00e9gr\u00e9 d'\u00e9valuation des performances pour mesurer le temps de travail.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Utiliser les m\u00e9thodes bang ! sur les cha\u00eenes<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">n\u00e9cessite \"memory_profiler\"\n\nreport = MemoryProfiler.report do\n<a href=\"https:\/\/thecodest.co\/fr\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">donn\u00e9es<\/a> = \"X\" * 1024 * 1024 * 100\ndata = data.downcase\nfin\n\nreport.pretty_print<\/code><\/pre>\n\n\n\n<p>Dans la liste ci-dessous, nous avons cr\u00e9\u00e9 une cha\u00eene de 100 Mo et r\u00e9duit chaque caract\u00e8re qu'elle contient. Notre test de r\u00e9f\u00e9rence donne <a href=\"https:\/\/thecodest.co\/fr\/blog\/why-us-companies-are-opting-for-polish-developers\/\">nous<\/a> le rapport suivant :<\/p>\n\n\n\n<p><em>Total allou\u00e9 : 210765044 octets (6 objets)<\/em><\/p>\n\n\n\n<p>Cependant, si nous rempla\u00e7ons la ligne 6 par :<\/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>Lire les fichiers ligne par ligne<\/strong><\/h2>\n\n\n\n<p>Supposons que nous ayons besoin de r\u00e9cup\u00e9rer une \u00e9norme collection de donn\u00e9es de 2 millions d'enregistrements \u00e0 partir d'un fichier csv. Typiquement, cela ressemblerait \u00e0 ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">n\u00e9cessite 'benchmark'\n\nBenchmark.bm do |x|\nx.report do\nFile.readlines(\"2mrecords.csv\").map ! {|line| line.split(\",\")}\nend\nend<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">utilisateur syst\u00e8me total r\u00e9el\n\n12.797000 2.437000 15.234000 (106.319865)<\/code><\/pre>\n\n\n\n<p>Il nous a fallu plus de 106 secondes pour t\u00e9l\u00e9charger enti\u00e8rement le fichier. C'est beaucoup ! Mais nous pouvons acc\u00e9l\u00e9rer ce processus en rempla\u00e7ant l'\u00e9l\u00e9ment <em>carte !<\/em> \u00e0 l'aide d'un simple <em>alors que<\/em> boucle :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">n\u00e9cessite 'benchmark'\n\nBenchmark.bm do |x|\nx.report do\nfile = File.open(\"2mrecords.csv\", \"r\")\nwhile line = file.gets\nline.split(\",\")\nend\nend\nfin<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">utilisateur syst\u00e8me total r\u00e9el\n\n6.078000 0.250000 6.328000 ( 6.649422)<\/code><\/pre>\n\n\n\n<p>La dur\u00e9e d'ex\u00e9cution a chut\u00e9 de fa\u00e7on spectaculaire depuis la mise en place de la <em>carte !<\/em> appartient \u00e0 une classe sp\u00e9cifique, comme <em>Hash#map<\/em> ou <em>Array#map<\/em>o\u00f9 <strong>Rubis<\/strong> stockera chaque ligne du fichier analys\u00e9 dans la m\u00e9moire tant qu'il sera ex\u00e9cut\u00e9. <strong>Le ramasse-miettes de Ruby <\/strong>ne lib\u00e9rera pas la m\u00e9moire avant que ces it\u00e9rateurs ne soient enti\u00e8rement ex\u00e9cut\u00e9s. Toutefois, la lecture ligne par ligne permettra \u00e0 la GC de relocaliser la m\u00e9moire des lignes pr\u00e9c\u00e9dentes lorsque cela n'est pas n\u00e9cessaire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u00c9viter les it\u00e9rateurs de m\u00e9thode sur les grandes collections<\/strong><\/h2>\n\n\n\n<p>Il s'agit d'une extension du point pr\u00e9c\u00e9dent avec un exemple plus courant. Comme je l'ai dit, <a href=\"https:\/\/thecodest.co\/blog\/high-demand-for-ruby-developers\/\">Rubis<\/a> Les it\u00e9rateurs sont des m\u00e9thodes d'objets et ne lib\u00e8rent pas la m\u00e9moire tant qu'ils sont ex\u00e9cut\u00e9s. \u00c0 petite \u00e9chelle, la diff\u00e9rence n'a pas de sens (et des m\u00e9thodes telles que <em>carte<\/em> semble plus lisible). Cependant, lorsqu'il s'agit d'ensembles de donn\u00e9es plus importants, c'est toujours une bonne id\u00e9e d'envisager de la remplacer par des boucles plus basiques. Comme dans l'exemple ci-dessous :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">numberofelements = 10000000\nrandoms = Array.new(numberofelements) { rand(10) }\n\nrandoms.each do |line|\n#do something\nend<\/code><\/pre>\n\n\n\n<p>et apr\u00e8s le remaniement :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">numberofelements = 10000000\nrandoms = Array.new(numberofelements) { rand(10) }\n\nwhile randoms.count &gt; 0\nline = randoms.shift\n# faire quelque chose\nend\n\"`<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Utiliser la m\u00e9thode String::&lt;&lt;<\/strong><\/h2>\n\n\n\n<p>Il s'agit d'une astuce rapide mais particuli\u00e8rement utile. Si vous ajoutez une cha\u00eene \u00e0 une autre en utilisant l'op\u00e9rateur += dans les coulisses. <strong>Rubis <\/strong> cr\u00e9era un objet suppl\u00e9mentaire. Ainsi, ceci :\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>En fait, cela signifie ceci :<\/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>L'op\u00e9rateur \u00e9viterait cela, ce qui vous permettrait d'\u00e9conomiser de la m\u00e9moire :<\/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>Parlons de Rails<\/strong><\/h2>\n\n\n\n<p>Les <strong>Cadre Rails <\/strong> poss\u00e8de de nombreuses \"<em>gotchas<\/em>\"qui vous permettra d'optimiser votre <a href=\"https:\/\/thecodest.co\/fr\/dictionary\/what-is-code-refactoring\/\">code<\/a> rapidement et sans trop d'efforts suppl\u00e9mentaires.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Probl\u00e8me de chargement impatient AKA n+1 query problem (probl\u00e8me de requ\u00eate)<\/strong><\/h2>\n\n\n\n<p>Supposons que nous ayons deux mod\u00e8les associ\u00e9s, Post et Author :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">class Author &lt; ApplicationRecord\nhas_many :posts\nend\n\nclass Post &lt; ApplicationRecord\nbelongs_to :author\nend<\/code><\/pre>\n\n\n\n<p>Nous voulons r\u00e9cup\u00e9rer tous les articles dans notre contr\u00f4leur et les afficher dans une vue avec leurs auteurs :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">contr\u00f4leur\n\ndef index\n@posts = Post.all.limit(20)\nend\n\nvue<\/code><\/pre>\n\n\n\n<p>Dans le contr\u00f4leur, <a href=\"https:\/\/thecodest.co\/blog\/a-simple-ruby-application-from-scratch-with-active-record\/\">ActiveRecord<\/a> ne cr\u00e9era qu'une seule requ\u00eate pour trouver nos articles. Mais plus tard, cela d\u00e9clenchera \u00e9galement 20 autres requ\u00eates pour trouver chaque auteur en cons\u00e9quence - ce qui prend un temps suppl\u00e9mentaire ! Heureusement, Rails propose une solution rapide pour combiner ces requ\u00eates en une seule. En utilisant l'option <em>comprend<\/em> nous pouvons r\u00e9\u00e9crire notre contr\u00f4leur de cette mani\u00e8re :<\/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 fin<\/code><\/code><\/pre>\n\n\n\n<p>Pour l'instant, seules les donn\u00e9es n\u00e9cessaires seront rassembl\u00e9es dans une seule requ\u00eate.\u00a0<\/p>\n\n\n\n<p>Vous pouvez \u00e9galement utiliser d'autres pierres pr\u00e9cieuses, telles que <a href=\"https:\/\/github.com\/flyerhzm\/bullet\">balle<\/a> pour personnaliser l'ensemble du processus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>N'appelez que ce dont vous avez besoin<\/strong><\/h2>\n\n\n\n<p>Une autre technique utile pour augmenter la vitesse d'ActiveRecord consiste \u00e0 n'appeler que les attributs qui sont n\u00e9cessaires pour vos besoins actuels. Ceci est particuli\u00e8rement utile lorsque votre application commence \u00e0 grandir et que le nombre de colonnes par table augmente \u00e9galement.<\/p>\n\n\n\n<p>Prenons l'exemple de notre code pr\u00e9c\u00e9dent et supposons que nous n'ayons besoin de s\u00e9lectionner que les noms des auteurs. Nous pouvons donc r\u00e9\u00e9crire notre contr\u00f4leur :<\/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 fin<\/code><\/code><\/code><\/pre>\n\n\n\n<p>Nous demandons maintenant \u00e0 notre contr\u00f4leur d'ignorer tous les attributs \u00e0 l'exception de celui dont nous avons besoin.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Rendre correctement les partiels<\/strong><\/h2>\n\n\n\n<p>Supposons que nous voulions cr\u00e9er une partie distincte pour les articles des exemples pr\u00e9c\u00e9dents :<\/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>\u00c0 premi\u00e8re vue, ce code semble correct. Cependant, avec un plus grand nombre de messages \u00e0 rendre, l'ensemble du processus sera nettement plus lent. Cela s'explique par le fait que <strong>Rails <\/strong> invoque notre partiel avec une nouvelle it\u00e9ration une fois de plus. Nous pouvons y rem\u00e9dier en utilisant la m\u00e9thode <em>collections<\/em> caract\u00e9ristiques :<\/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>Aujourd'hui, <strong>Rails<\/strong> d\u00e9terminera automatiquement le mod\u00e8le \u00e0 utiliser et ne l'initialisera qu'une seule fois.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Utiliser le traitement en arri\u00e8re-plan<\/strong><\/h2>\n\n\n\n<p>Tout processus qui prend plus de temps et qui n'est pas crucial pour votre flux actuel peut \u00eatre consid\u00e9r\u00e9 comme un bon candidat pour le traitement en arri\u00e8re-plan, par exemple l'envoi de courriers \u00e9lectroniques, la collecte de statistiques ou la fourniture de rapports p\u00e9riodiques.&nbsp;<\/p>\n\n\n\n<p><strong>Sidekiq<\/strong> est la gemme la plus couramment utilis\u00e9e pour le traitement en arri\u00e8re-plan. Elle utilise <strong>Redis<\/strong> pour stocker les t\u00e2ches. Il vous permet \u00e9galement de contr\u00f4ler le flux de vos processus d'arri\u00e8re-plan, de les diviser en files d'attente distinctes et de g\u00e9rer l'utilisation de la m\u00e9moire pour chacun d'entre eux.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u00c9crire moins de code, utiliser plus de gemmes<\/strong><\/h2>\n\n\n\n<p><strong>Rails <\/strong> a trouv\u00e9 un grand nombre de joyaux qui non seulement vous facilitent la vie et acc\u00e9l\u00e8rent le processus d'apprentissage, mais qui sont \u00e9galement tr\u00e8s utiles pour la gestion de l'entreprise. <a href=\"https:\/\/thecodest.co\/fr\/blog\/how-the-codests-team-extension-model-can-transform-your-in-house-development-team\/\">processus de d\u00e9veloppement<\/a>mais aussi d'augmenter la vitesse de performance de votre application. Les pierres pr\u00e9cieuses telles que Devise ou Pundit sont g\u00e9n\u00e9ralement bien test\u00e9es en ce qui concerne leur vitesse et fonctionnent plus rapidement et de mani\u00e8re plus s\u00fbre qu'un code \u00e9crit sur mesure pour le m\u00eame objectif.<\/p>\n\n\n\n<p>En cas de questions sur l'am\u00e9lioration <em>Performance de Rails<\/em>, atteindre <strong><a href=\"https:\/\/thecodest.co\">The Codest ing\u00e9nieurs<\/a><\/strong> pour consulter vos doutes.<\/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=\"Offre d\u00e9veloppeur Ruby\"\/><\/a><\/figure>\n\n\n\n<p><strong>En savoir plus :<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/pros-and-cons-of-ruby-software-development\/\">Avantages et inconv\u00e9nients du d\u00e9veloppement de logiciels en Rubis<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">Rails et autres moyens de transport<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">D\u00e9veloppement Rails avec TMUX, Vim, Fzf + Ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Malgr\u00e9 ses nombreux avantages, Ruby on Rails est toujours consid\u00e9r\u00e9 comme un framework web relativement lent. Nous savons tous que Twitter a abandonn\u00e9 Rails au profit de Scala. Cependant, avec quelques am\u00e9liorations astucieuses, vous pouvez faire fonctionner votre application beaucoup plus rapidement !<\/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\/fr\/blog\/les-moyens-daugmenter-la-performance-de-vos-rails\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/blog\/les-moyens-daugmenter-la-performance-de-vos-rails\/\" \/>\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\":\"fr-FR\",\"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\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@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\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@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\":\"fr-FR\",\"@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\\\/fr\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment augmenter les performances de Rails - 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\/fr\/blog\/les-moyens-daugmenter-la-performance-de-vos-rails\/","og_locale":"fr_FR","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\/fr\/blog\/les-moyens-daugmenter-la-performance-de-vos-rails\/","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":"fr-FR","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":"Comment augmenter les performances de Rails - 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":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@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":"fr-FR"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@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":"fr-FR","@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\/fr\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/comments?post=3804"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3804\/revisions"}],"predecessor-version":[{"id":8428,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/posts\/3804\/revisions\/8428"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/media\/3805"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/media?parent=3804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/categories?post=3804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/fr\/wp-json\/wp\/v2\/tags?post=3804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}