{"id":10016,"date":"2018-03-16T12:08:01","date_gmt":"2018-03-16T12:08:01","guid":{"rendered":"https:\/\/blog.jetbrains.com\/ruby\/?p=8129"},"modified":"2019-04-01T15:00:44","modified_gmt":"2019-04-01T15:00:44","slug":"rubymine-2018-1-beta-performance","status":"publish","type":"ruby","link":"https:\/\/blog.jetbrains.com\/ruby\/2018\/03\/rubymine-2018-1-beta-performance\/","title":{"rendered":"RubyMine 2018.1 Beta: Smarter and Faster"},"content":{"rendered":"<p>Hi everyone!<\/p>\n<p><strong><a href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\" target=\"_blank\" rel=\"noopener\">RubyMine 2018.1 Beta (build 181.4203.207)<\/a><\/strong> is out now and ready for your review! Earlier we told you about the <a href=\"https:\/\/blog.jetbrains.com\/ruby\/2018\/02\/new-static-analysis-2018-1-eap\/\" target=\"_blank\">new static analysis core engine<\/a> that\u2019s allowed RubyMine to understand and navigate your projects\u2019 and Rails\u2019 codebases better. These changes also had a <strong>great impact on the overall performance of RubyMine<\/strong>, which has become evident after fixing some bugs in the fresh 2018.1 Beta build.<\/p>\n<ul>\n<li><a href=\"#faster_rubymine\">Faster RubyMine<\/a><\/li>\n<li><a href=\"#comment_out_html_and_ruby_in_html_erb_in_one_go\">Comment out HTML and Ruby in .html.erb in one go<\/a>\n    <\/li>\n<li><a href=\"#embedded_diagrams_in_markdown\">Embedded diagrams in Markdown<\/a><\/li>\n<li><a href=\"#other_improvements\">Other improvements<\/a><\/li>\n<\/ul>\n<h2 id=\"faster_rubymine\">Faster RubyMine<\/h2>\n<p>Performance improvements already were <a href=\"https:\/\/www.jetbrains.com\/ruby\/whatsnew\/#v2017-3-a-better-ide\" target=\"_blank\" rel=\"noopener\">a major highlight of the v2017.3 release<\/a>. Yet, we believe now we have pushed it to a whole new level, which is confirmed by our sample testing.<\/p>\n<p>To check our progress, we inspected all `.rb` files located in <a href=\"https:\/\/github.com\/diaspora\/diaspora\" target=\"_blank\" rel=\"noopener\">Diaspora<\/a>\u2019s app directory for <em>unresolved Ruby references<\/em> (<em>Code | Run Inspection by Name | Unresolved Ruby reference<\/em>), which is quite a consuming task in terms of CPU and memory usage. We ran this inspection in a stable build of every major version starting from v2017.1 as we\u2019ve been iterating over different performance improvements for a year now. Then we also ran it on the new 2018.1 Beta build. The results didn\u2019t disappoint us:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/03\/ruby-performance_improved.png\" alt=\"\" width=\"751\" \/><\/p>\n<p style=\"text-align: center;\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\" target=\"_blank\" rel=\"noopener\">Download RubyMine 2018.1 BETA<\/a><\/p>\n<p><!--more--><\/p>\n<p>The new 2018.1 Beta analyzes Ruby code two times faster than the current stable 2017.3.3 build, and 6 times faster than the older RubyMine v2017.1.5. While results may differ slightly depending on your machine and your projects, the dynamic pattern should persist, so we really encourage you to check out the new Beta!<\/p>\n<h2 id=\"comment_out_html_and_ruby_in_html_erb_in_one_go\">Comment out HTML and Ruby in .html.erb in one go<\/h2>\n<p>The new build also lets you easily comment out both HTML and ERB tags the way an IDE is supposed to &#8211; with a common keyboard shortcut &#8211; <em>\u2318 \/ | Ctrl+Slash<\/em>:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/03\/ruby-erb_comments.gif\" alt=\"\" width=\"751\" \/><\/p>\n<p>This works when HTML and ERB tags follow each other, as well as when Embedded Ruby is wrapped in HTML, which you possibly do a lot in your view files. Related issue: <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-15663\" target=\"_blank\" rel=\"noopener\">RUBY-15663<\/a><\/p>\n<h2 id=\"embedded_diagrams_in_markdown\">Embedded diagrams in Markdown<\/h2>\n<p>Markdown preview now displays UML diagrams if you have them in your `.md` files. Insert `puml` (<em>this code snippet is available by default in the autocompletion list<\/em>) before the UML code, so that RubyMine identifies the syntax properly and displays the diagram in the preview pane:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2018\/03\/ruby-markdown_diagrams.gif\" alt=\"\" width=\"751\" \/><\/p>\n<p>Feel free to leave your comments and suggestions in the related issue: [<a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-19041\" target=\"_blank\" rel=\"noopener\">RUBY-19041<\/a>]<\/p>\n<h3 id=\"other_improvements\">Other improvements<\/h3>\n<p>The Beta build also fixes the following issues:<\/p>\n<ul>\n<li>Reinstated detecting `singleton_method` definitions [<a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-21068\" target=\"_blank\" rel=\"noopener\">RUBY-21068<\/a>]<\/li>\n<li>Supported IDE Settings Sync plugin (bundled). Read more on the <a href=\"https:\/\/blog.jetbrains.com\/idea\/2017\/09\/intellij-idea-2017-3-eap-better-synchronization-of-your-settings-across-devices-and-other-improvements\/\" target=\"_blank\">IntelliJ IDEA blog<\/a>.<\/li>\n<li>Fixed regressions and other bugs<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/ruby\/nextversion\" target=\"_blank\" rel=\"noopener\">Download RubyMine 2018.1 BETA<\/a><\/p>\n<p>As usual, see the <a href=\"https:\/\/confluence.jetbrains.com\/display\/RUBYDEV\/RubyMine+2018.1\" target=\"_blank\" rel=\"noopener\">release notes<\/a> for the full list of improvements, and please <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/ruby\" target=\"_blank\" rel=\"noopener\">report<\/a> any issues you encounter.<\/p>\n<p>Cheers,<br \/>\nYour RubyMine team<\/p>\n","protected":false},"author":574,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","categories":[826,808,89],"tags":[685,600,667],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/10016"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/ruby"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/574"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=10016"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/10016\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=10016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=10016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=10016"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=10016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}