{"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":"formas-de-aumentar-el-rendimiento-de-sus-carriles","status":"publish","type":"post","link":"https:\/\/thecodest.co\/es\/blog\/ways-to-increase-your-rails-performance\/","title":{"rendered":"C\u00f3mo aumentar el rendimiento de Rails"},"content":{"rendered":"<h2 class=\"wp-block-heading\"><strong>Rub\u00ed Primero<\/strong><\/h2>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/es\/case-studies\/providing-a-team-of-ruby-developers-for-a-fintech-company\/\">Ruby<\/a><\/strong> es un lenguaje fuertemente orientado a objetos. De hecho, (casi) todo en <strong>Ruby<\/strong> es un objeto. La creaci\u00f3n de objetos innecesarios puede costar a su programa una gran cantidad de uso de memoria adicional, por lo que debe evitarlo.<\/p>\n\n\n\n<p>Para medir la diferencia, utilizaremos un <em><a href=\"https:\/\/github.com\/SamSaffron\/memory_profiler\">perfil_de_memoria<\/a><\/em> y un m\u00f3dulo Benchmark integrado para medir el rendimiento temporal.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Utilizar m\u00e9todos bang! en cadenas<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">require \"perfil_de_memoria\"\n\nreport = MemoryProfiler.report do\n<a href=\"https:\/\/thecodest.co\/es\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">datos<\/a> = \"X\" * 1024 * 1024 * 100\ndata = data.downcase\nfin\n\ninforme.pretty_print<\/code><\/pre>\n\n\n\n<p>En la siguiente lista, creamos una cadena de 100 MB y redujimos el tama\u00f1o de cada car\u00e1cter que conten\u00eda. Nuestro benchmark da <a href=\"https:\/\/thecodest.co\/es\/blog\/why-us-companies-are-opting-for-polish-developers\/\">us<\/a> el siguiente informe:<\/p>\n\n\n\n<p><em>Total asignado: 210765044 bytes (6 objetos)<\/em><\/p>\n\n\n\n<p>Sin embargo, si sustituimos la l\u00ednea 6 por:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">\u00a1data.downcase!<\/code><\/code><\/pre>\n\n\n\n<p><code> <\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Leer archivos l\u00ednea por l\u00ednea<\/strong><\/h2>\n\n\n\n<p>Supuestamente, necesitamos recuperar una enorme colecci\u00f3n de datos de 2 millones de registros de un archivo csv. T\u00edpicamente, se ver\u00eda as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">exigir \"benchmark\n\nBenchmark.bm do |x|\nx.report do\n\u00a1Archivo.readlines(\"2mrecords.csv\").map! {|line| line.split(\",\")}\nend\nend<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">usuario sistema total real\n\n12.797000 2.437000 15.234000 (106.319865)<\/code><\/pre>\n\n\n\n<p>Tardamos m\u00e1s de 106 segundos en descargar completamente el archivo. Bastante. Pero podemos acelerar este proceso sustituyendo la directiva <em>\u00a1Mapa!<\/em> con un simple <em>mientras que<\/em> bucle:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">exigir \"benchmark\n\nBenchmark.bm do |x|\nx.informe do\narchivo = File.open(\"2mrecords.csv\", \"r\")\nwhile l\u00ednea = archivo.obtiene\nline.split(\",\")\nend\nend\nfin<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">usuario sistema total real\n\n6.078000 0.250000 6.328000 ( 6.649422)<\/code><\/pre>\n\n\n\n<p>El tiempo de ejecuci\u00f3n se ha reducido dr\u00e1sticamente desde el <em>\u00a1Mapa!<\/em> pertenece a una clase espec\u00edfica, como <em>Hash1TP63Mapa<\/em> o <em>Matriz1TP63Mapa<\/em>donde <strong>Ruby<\/strong> almacenar\u00e1 cada l\u00ednea del archivo analizado en la memoria mientras se ejecute. <strong>El recolector de basura de Ruby <\/strong>no liberar\u00e1 la memoria antes de que esos iteradores se ejecuten completamente. Sin embargo, si se lee l\u00ednea por l\u00ednea, GC reubicar\u00e1 la memoria de las l\u00edneas anteriores cuando no sea necesario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Evitar iteradores de m\u00e9todos en colecciones grandes<\/strong><\/h2>\n\n\n\n<p>\u00c9ste es una ampliaci\u00f3n del punto anterior con un ejemplo m\u00e1s com\u00fan. Como ya he dicho, <a href=\"https:\/\/thecodest.co\/blog\/high-demand-for-ruby-developers\/\">Ruby<\/a> Los iteradores son m\u00e9todos de objetos y no liberar\u00e1n memoria mientras se est\u00e9n ejecutando. A peque\u00f1a escala, la diferencia no tiene sentido (y m\u00e9todos como <em>mapa<\/em> parece m\u00e1s legible). Sin embargo, cuando se trata de conjuntos de datos m\u00e1s grandes, siempre es una buena idea considerar su sustituci\u00f3n por bucles m\u00e1s b\u00e1sicos. Como en el ejemplo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">n\u00famerodeelementos = 10000000\nrandoms = Array.new(n\u00famerodeelementos) { rand(10) }\n\nrandoms.each do |line|\n#hacer algo\nend<\/code><\/pre>\n\n\n\n<p>y despu\u00e9s de la refactorizaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">n\u00famerodeelementos = 10000000\nrandoms = Array.new(n\u00famerodeelementos) { rand(10) }\n\nwhile randoms.count &gt; 0\nl\u00ednea = randoms.shift\n1TP63Hacer algo\nfin\n\"`<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Utilizar el m\u00e9todo String::&lt;&lt;<\/strong><\/h2>\n\n\n\n<p>Este es un consejo r\u00e1pido pero especialmente \u00fatil. Si a\u00f1ades una cadena a otra utilizando el operador += entre bastidores. <strong>Ruby <\/strong> crear\u00e1 un objeto adicional. Entonces, esto:\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">a = \"X\"\n b = \"Y\"\n a += b<\/code><\/code><\/pre>\n\n\n\n<p>En realidad significa esto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">a = \"X\"\n b = \"Y\"\n c = a + b\n a = c<\/code><\/code><\/pre>\n\n\n\n<p>El operador lo evitar\u00eda, ahorr\u00e1ndote algo de memoria:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">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>Hablemos de Rails<\/strong><\/h2>\n\n\n\n<p>En <strong>Marco Rails <\/strong> posee un mont\u00f3n de \"<em>gotchas<\/em>\" que le permitir\u00eda optimizar su <a href=\"https:\/\/thecodest.co\/es\/dictionary\/what-is-code-refactoring\/\">c\u00f3digo<\/a> r\u00e1pidamente y sin demasiado esfuerzo adicional.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Eager Loading AKA problema de consulta n+1<\/strong><\/h2>\n\n\n\n<p>Supongamos que tenemos dos modelos asociados, Post y Author:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">class Autor &lt; ApplicationRecord\nhas_many :posts\nend\n\nclase Post &lt; ApplicationRecord\nbelongs_to :autor\nend<\/code><\/pre>\n\n\n\n<p>Queremos obtener todas las entradas en nuestro controlador y mostrarlas en una vista con sus autores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">controlador\n\ndef index\n@posts = Post.all.limit(20)\nfin\n\nver<\/code><\/pre>\n\n\n\n<p>En el controlador, <a href=\"https:\/\/thecodest.co\/blog\/a-simple-ruby-application-from-scratch-with-active-record\/\">ActiveRecord<\/a> crear\u00e1 s\u00f3lo una consulta para encontrar nuestras entradas. Pero m\u00e1s tarde, tambi\u00e9n lanzar\u00e1 otras 20 consultas para encontrar a cada autor - \u00a1lo que nos llevar\u00e1 un tiempo adicional! Por suerte, Rails ofrece una soluci\u00f3n r\u00e1pida para combinar esas consultas en una sola. Usando el m\u00e9todo <em>incluye<\/em> podemos reescribir nuestro controlador de esta manera:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\"><code> def index\n     @posts = Post.all.includes(:autor).limit(20)\n end<\/code><\/code><\/pre>\n\n\n\n<p>Por ahora, s\u00f3lo se obtendr\u00e1n los datos necesarios en una consulta.\u00a0<\/p>\n\n\n\n<p>Tambi\u00e9n puede utilizar otras gemas, como <a href=\"https:\/\/github.com\/flyerhzm\/bullet\">bala<\/a> para personalizar todo el proceso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Llame s\u00f3lo lo que necesite<\/strong><\/h2>\n\n\n\n<p>Otra t\u00e9cnica \u00fatil para aumentar la velocidad de ActiveRecord es llamar s\u00f3lo a aquellos atributos que son necesarios para tus prop\u00f3sitos actuales. Esto es especialmente \u00fatil cuando tu aplicaci\u00f3n empieza a crecer y el n\u00famero de columnas por tabla tambi\u00e9n aumenta.<\/p>\n\n\n\n<p>Tomemos nuestro c\u00f3digo anterior como ejemplo y supongamos que s\u00f3lo necesitamos seleccionar nombres de autores. Entonces, podemos reescribir nuestro controlador:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">def index\n     @posts = Post.all.includes(:autor).select(\"nombre\").limit(20)\n end<\/code><\/code><\/code><\/pre>\n\n\n\n<p>Ahora ordenamos a nuestro controlador que omita todos los atributos excepto el que necesitamos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Renderizar parciales correctamente<\/strong><\/h2>\n\n\n\n<p>Digamos que queremos crear un parcial separado para nuestros posts de ejemplos anteriores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">\n<\/code><\/code><\/code><\/code><\/pre>\n\n\n\n<p>A primera vista, este c\u00f3digo parece correcto. Sin embargo, con un mayor n\u00famero de entradas para renderizar, todo el proceso ser\u00e1 significativamente m\u00e1s lento. Esto se debe a que <strong>Rieles <\/strong> vuelve a invocar nuestro parcial con una nueva iteraci\u00f3n. Podemos solucionarlo utilizando la funci\u00f3n <em>colecciones<\/em> caracter\u00edstica:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">&gt;<\/code><\/code><\/code><\/code><\/pre>\n\n\n\n<p>Ahora, <strong>Rieles<\/strong> averiguar\u00e1 autom\u00e1ticamente qu\u00e9 plantilla debe utilizarse y la inicializar\u00e1 una sola vez.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Utilizar el proceso de fondo<\/strong><\/h2>\n\n\n\n<p>Todo proceso que consuma m\u00e1s tiempo y no sea crucial para su flujo actual puede considerarse un buen candidato para el procesamiento en segundo plano, por ejemplo, el env\u00edo de correos electr\u00f3nicos, la recopilaci\u00f3n de estad\u00edsticas o la elaboraci\u00f3n de informes peri\u00f3dicos.&nbsp;<\/p>\n\n\n\n<p><strong>Sidekiq<\/strong> es la gema m\u00e1s utilizada para el procesamiento en segundo plano. Utiliza <strong>Redis<\/strong> para almacenar tareas. Tambi\u00e9n le permite controlar el flujo de sus procesos en segundo plano, dividirlos en colas separadas y gestionar el uso de memoria por cada uno de ellos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Escribir menos c\u00f3digo, utilizar m\u00e1s gemas<\/strong><\/h2>\n\n\n\n<p><strong>Rieles <\/strong> con un enorme n\u00famero de gemas que no s\u00f3lo te facilitan la vida y aceleran el <a href=\"https:\/\/thecodest.co\/es\/blog\/how-the-codests-team-extension-model-can-transform-your-in-house-development-team\/\">proceso de desarrollo<\/a>pero tambi\u00e9n aumentan la velocidad de rendimiento de tu aplicaci\u00f3n. Gemas como Devise o Pundit suelen estar bien probadas en cuanto a su velocidad y funcionan de forma m\u00e1s r\u00e1pida y segura que el c\u00f3digo escrito a medida para el mismo fin.<\/p>\n\n\n\n<p>En caso de cualquier duda para mejorar <em>Rendimiento de Rails<\/em>, alcance <strong><a href=\"https:\/\/thecodest.co\">The Codest ingenieros<\/a><\/strong> para consultar tus dudas.<\/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=\"Oferta de desarrollador Ruby\"\/><\/a><\/figure>\n\n\n\n<p><strong>M\u00e1s informaci\u00f3n:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/pros-and-cons-of-ruby-software-development\/\">Ventajas e inconvenientes del desarrollo de software con Ruby<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">Ferrocarriles y otros medios de transporte<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">Desarrollo Rails con TMUX, Vim, Fzf + Ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>A pesar de sus numerosas ventajas, Ruby on Rails sigue consider\u00e1ndose un framework web relativamente lento. Todos sabemos que Twitter ha abandonado Rails en favor de Scala. Sin embargo, con unas cuantas mejoras inteligentes puedes hacer que tu aplicaci\u00f3n funcione mucho m\u00e1s r\u00e1pido.<\/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\/es\/blog\/formas-de-aumentar-el-rendimiento-de-sus-carriles\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/blog\/formas-de-aumentar-el-rendimiento-de-sus-carriles\/\" \/>\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\":\"es-ES\",\"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\":\"es-ES\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/ways-to-increase-your-rails-performance\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@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\":\"es-ES\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@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\":\"es-ES\",\"@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\\\/es\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo aumentar el rendimiento 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\/es\/blog\/formas-de-aumentar-el-rendimiento-de-sus-carriles\/","og_locale":"es_ES","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\/es\/blog\/formas-de-aumentar-el-rendimiento-de-sus-carriles\/","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":"es-ES","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":"C\u00f3mo aumentar el rendimiento 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":"es-ES","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/ways-to-increase-your-rails-performance\/"]}]},{"@type":"ImageObject","inLanguage":"es-ES","@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":"es-ES"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"es-ES","@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":"es-ES","@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\/es\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts\/3804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/comments?post=3804"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts\/3804\/revisions"}],"predecessor-version":[{"id":8428,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts\/3804\/revisions\/8428"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/media\/3805"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/media?parent=3804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/categories?post=3804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/tags?post=3804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}