• BLOG.JETBRAINS.COM
    Next-Level Performance Improvements in ReSharper 2025.2
    The 2025.2 release of ReSharper introduces a number of performance and responsiveness improvements across several key areas. This post outlines the most notable updates, including out-of-process support, improved solution startup, faster refactorings, and better Razor/Blazor handling. Download ReSharper Out-of-Process mode Public PreviewReSharper 2025.2 is the first stable release to support running ReSharper out of process (OOP) with Microsoft Visual Studio. This architectural change separates ReSharper from the Visual Studio process, improving performance and laying the groundwork for future stability improvements. You can learn all about the measurable typing latency improvements Out-of-Process mode brings from this blog post.To enable Out-of-Process mode, go to ReSharper | Options | Environment | Products & Features, select Run ReSharper in separate process, then click Save and restart to reinitialize without restarting the IDE.Should you have any questions about this new mode, you can request assistance here.Performance and quality updates for Razor/BlazorIn this release, Razor/Blazor support has been further optimized. Updates include reduced memory traffic and unnecessary processing for include files such as _ViewImports and _ViewStart, and improved performance for Find Usages on Razor component types.Several correctness issues have also been resolved, including false warnings in .razor and .cshtml files that previously disappeared only after editing.Additionally, 2025.2 introduces import completion for Razor and Blazor components. ReSharper now automatically adds the necessary @using directives when referencing components.ReSharpers Razor and Blazor support has received further performance improvements in this release. If you work with large projects containing many .razor and .cshtml files, youll notice faster responsiveness throughout your development workflow.Faster, more transparent Rename refactoringIn this release, weve focused on improving the performance of one of ReSharpers most widely used refactorings Rename. While it may seem simple on the surface, renaming a symbol can be quite complex behind the scenes, and the time it takes often depends on the type of code element youre renaming. Weve greatly improved ReSharpers progress reporting to provide clearer feedback during longer operations, keeping you informed throughout the process.This improved visibility helped us identify some performance bottlenecks, leading to optimizations in conflict detection, reduced unnecessary processing, eliminated duplicate operations, and lowered memory consumption all while fixing some correctness issues along the way.The biggest performance gain comes from parallelizing the Verifying suspicious references phase. Since this step typically only validates safety without modifying code, we can now run it across multiple threads while keeping code modifications safely on a single thread, as required by the IDEs architecture.Non-blocking inplace refactoringsInplace refactorings such as Rename or Change Signature have been made asynchronous. Previously, when you started renaming something, ReSharper would have to pause to analyze your entire codebase before letting you continue typing. Now, ReSharper lets you type immediately and does all the heavy analysis work in the background after youre done editing. This means no more typing delays during refactoring operations, particularly when working with large solutions.Faster solution loading and initial indexingWeve made indexing faster by updating how ReSharper reads files from your disk. In the past, ReSharper was designed to read files one at a time in sequence this worked well for older hard drives (HDDs) that performed better with this approach. However, modern solid-state drives (SSDs) SSDs are free from physical limitations of the HDDs and enable parallel I/O operations with high throughput. Weve removed the old restrictions on ReSharper, so it can now take full advantage of your SSDs capabilities, reading multiple files at once for faster startup.By streamlining how ReSharper coordinates its background work and removing outdated performance bottlenecks, indexing now runs more efficiently on modern computers. Weve also reduced the number of UI freezes during startup. While not eliminated entirely, these interruptions now occur less frequently and are shorter in duration. Additionally, several internal components that previously delayed background daemon activity have been reworked, resulting in faster initialization in many cases. The impact will vary depending on the solution, but the overall experience should feel smoother and more responsive.This faster startup is then further enhanced by the introduction of the Early Go-to mode.Instant solution navigation with Early Go-toWe know that waiting for ReSharper to fully load your solution before you can start working can be frustrating, especially on large codebases. With this release, were introducing Early Go-to a new startup mode that gets you productive immediately, even before your solution is fully indexed.What is Early Go-to?When you open a solution and press Ctrl+T (Search Everywhere/Go-to), ReSharper now provides instant access to files before the full project model and symbols are loaded. This means you can search for and open files right away, without waiting for solution indexing to complete.Think of it as a sped-up Go To File experience that kicks in early, so youre not stuck waiting during cold starts or when working with large solutions.How it worksThe feature activates automatically when you press Ctrl+T during solution startup. In this early mode, you can quickly find and open files by name and get straight to work.Once ReSharper finishes loading symbols in the background, youll see an Update results button that switches you to the full Go-to-Everywhere experience with type, symbol, and text search capabilities.After ReSharper is fully loaded, subsequent searches in the same session will use the complete Go-to-Everywhere functionality, as early mode is specifically designed for that initial startup period where you need to get to work quickly.Performance impactOn large solutions, this improvement can reduce your effective startup time by up to a full minute. Instead of waiting for complete indexing, you can immediately navigate to the files you need and begin coding while ReSharper continues its background processing.Current limitationsEarly mode focuses exclusively on file navigation it doesnt support symbol or text search yet. However, once you click Update results after full loading is complete, youll have access to all the search capabilities youre used to in Go-to-Everywhere.These improvements aim to make ReSharper more responsive and efficient, especially when working with large solutions or refactor-heavy workflows.We encourage you to give ReSharper 2025.2 a try and see if you notice a difference in day-to-day performance. If you do, wed love to hear your impressionsfeel free to share your experience and let us know how the latest update is working for you. Download ReSharper
    0 Yorumlar 0 hisse senetleri 15 Views
  • BLOG.JETBRAINS.COM
    ReSharper and the .NET Tools 2025.2 Are Out!
    ReSharper and the .NET tools 2025.2 are available for download. This release introduces the public preview of ReSharpers Out-of-Process mode, adds support for the latest C# 14 and C++26 features, and brings a range of improvements for performance, refactorings, and inspections.If youd like to try out whats coming in the next stable release, you can download the RC build here: Download ReSharper 2025.2 Out-of-process mode Public PreviewThe long-awaited Out-of-Process (OOP) mode is here. ReSharper can now run in a separate process from Visual Studio, improving stability and paving the way for more performance gains in future releases.Switching to OOP mode is simple:Go to ReSharpers Options | Environment | Products & Features.Enable the Run ReSharper in separate process option.Click the Save and restart button to apply the changes and reinitialize ReSharper without having to restart the IDE.You can learn all about the measurable typing latency improvements Out-of-Process mode brings from this blog post.Performance improvements youll noticeWeve tuned ReSharper to work more efficiently across the board:Instant navigation at startup Ctrl+T is available right away.Faster Rename refactoring with parallelized validation and lower memory use.Smoother inline refactorings that wont slow down typing.Quicker solution loading on SSDs thanks to removal of outdated HDD-era logic.Optimized Razor/Blazor processing with less memory overhead and faster Find Usages.Weve put together a separate blog post for you to explore all of these performance gains in-depth.C# supportReSharper 2025.2 adds initial support for the latest C# 14 features:Extension members (initial support).Partial events and constructors.Null-conditional assignments (e.g. a?.b = c).User-defined compound assignment operators.New preprocessor directives: #! and #:.Logging improvementsReSharper now helps you write more efficient and maintainable logging code with ILogger:A new refactoring lets you convert standard logger calls into [LoggerMessage]-based methods.When using ILogger<T>, ReSharper suggests the current type automatically.Completion is now available for parameters in [LoggerMessage] attributes.ReSharper detects and highlights missing parameters or duplicates in logging declarations. Coding productivitySeveral new context actions and inspections are available in this release:Inplace refactorings now appear via inlay hints.A new context action lets you convert a method to a local function.A new inspection detects duplicated switch arms and offers a fix to merge them.Support has been added for [ConstantExpected], with warnings when non-constant values are used. C++ supportReSharper C++ 2025.2 introduces the following updates for modern C++ development:Initial support for C++26 language features.Code insight and completion in code containing multiple #if directives.A new syntax style for keeping definitions sorted by declaration order.Highlighting for global constants, OpenMP variable support, and more.Continuous integrationAs of this release, the TeamCity extension for Visual Studio is being discontinued. This change is intended to reduce long-term maintenance overheads and focus development on the most impactful tooling.CQRS validation ExperimentalReSharper 2025.2 introduces experimental support for validating compliance with the Command Query Responsibility Segregation (CQRS) architectural pattern. CQRS validation helps detect structural inconsistencies between commands and queries using a combination of naming conventions and explicit annotations. ReSharper can now identify and offer quick-fixes for the following issues:Naming mismatches when a symbols name doesnt align with its inferred context.Context intersections when a method in one context calls a method from the opposite context.Name vs. attribute conflicts when the naming pattern and annotations suggest different contexts.CQRS validation is disabled by default and can be enabled in Options | Code Inspection | CQRS Validation. The required annotations are available in JetBrains.Annotations.Whats new in dotTrace and dotMemory 2025.2For the 2025.2 release our efforts surrounding the .NET profiling tools have been focused on improving and elevating their integration into JetBrains Rider. The Monitoring tool inside Rider has been reimagined to provide a more seamless and informative experience when analyzing application performance during development.The Monitoring tool window now offers interactive charts for CPU, memory, and Garbage Collection (GC) activity, and automatically highlights performance bottlenecks, UI freezes, and GC pressure issues. On Windows, you can analyze any time interval in dotTrace for detailed call stack and timing data, or capture a memory snapshot for inspection in dotMemory.These improvements are part of a broader initiative to centralize performance diagnostics and reduce the need for external dashboards or separate profiling sessions during development.Whats new in dotCover 2025.2This release introduces performance optimizations and removes support for some technologies with low usage. The following are no longer supported:Mono and Unity projects.IIS Express, WCF, WinRT, external .NET processes, and MAUI.The command-line runner has been updated and modernized:dotcover cover now handles all target types.XML configuration files have been replaced by text files with CLI arguments.The .exe runner has been removed from the NuGet package.dotCover is now available as a .NET tool.Share your feedbackYou can download the latest release from our website or install it via the JetBrains Toolbox App. Download ReSharper 2025.2 We cant wait to hear your feedback on the newest features and performance improvements! Tell us what you think in the comments below or by reaching out to us on X or Bluesky.
    0 Yorumlar 0 hisse senetleri 15 Views
  • BLOG.JETBRAINS.COM
    Rider 2025.2 Is Here with Junie, In-IDE OpenTelemetry, Game Dev Upgrades, and More
    Rider 2025.2 delivers a big step forward in intelligent development tooling, bringing AI deeper into your workflow with Junie our AI coding agent along with runtime observability through the new OpenTelemetry plugin, a reworked Monitoring tool window, and improved debugging across platforms.Lets take a closer look at whats new. Download Rider 2025.2 Meet Junie, your AI coding agent BetaRider now features Junie, a powerful AI agent designed to take on complex development tasks. You can use Ask mode for high-level brainstorming or Code mode for hands-on implementation. Junie can write and refactor code, generate files, and run tests all while keeping you in control.The latest version of Junie available in Rider 2025.2 is up to 30% faster than its previous iteration, supports remote development, and brings deeper context awareness through the Model Context Protocol (MCP).You can also connect Junie to GitHub (Early Access) to manage pull requests without opening your IDE. When working asynchronously, Junie takes more time to reason through changes, providing thoughtful, context-aware responses.Learn all about the latest improvements to Junie you can now enjoy in Rider here.MCP server connectivityJetBrains IDEs now support one-click setup for the MCP server, allowing Rider to connect seamlessly to external AI clients. Once connected, you can use your preferred client to trigger unit tests, refactorings, or code generation with Rider as the execution layer.Learn more from our documentation.A new look at performance: reworked Monitoring and OpenTelemetryThe Monitoring tool window has been entirely reimagined to make performance optimization for .NET applications simpler and more insightful. Youll find new interactive charts, automatic performance issue detection on Windows, and seamless integration with Riders bundled profilers, dotTrace and dotMemory. With just a couple of clicks, you can navigate from a performance issue to the responsible method in the editor.To complement this move towards easy performance optimization, Rider 2025.2 also introduces the OpenTelemetry plugin, bringing runtime metrics and logs directly into your IDE. You can visualize app behavior, generate architecture diagrams, and click through from logs to the exact source code all without leaving Rider or opening an external dashboard. Learn more about the new tool here.The OpenTelemetry plugin also integrates with MCP Servers, allowing AI tools to access logs, architecture diagrams, and other observability data.Better debugging, on every levelThe latest release expands your debugging options significantly:The native debugger now lets you suppress low-level assertion exceptions and define step filters for smoother stepping through library code.The new Pause All Processes action streamlines debugging of multi-process applications.You can now debug native code remotely via SSH on Windows.Support for mixed-mode debugging in Unity lets you set breakpoints in both C# and C++ and step seamlessly between them.Learn more.Performance improvementsFaster debugger steppingIn addition to the native debugger changes described above, for this release weve also worked on stepping performance. Stepping through code is now snappier, even when working with complex watches like large Unity objects or LINQ expressions. Rider now cancels unnecessary evaluations earlier for a smoother debugging experience.Improved memory consumptionWeve fine-tuned Riders garbage collection settings, reducing peak managed memory usage by GC up to 20% especially helpful when working on large codebases.Game developmentIf you use Rider to develop games, this release is packed with improvements you will enjoy:UnityShader debugging: Debug ShaderLab code in Rider using the integrated Frame Viewer with full support for breakpoints, draw calls, texture inspection, and more. Windows onlyMixed-mode debugging: Step seamlessly between managed (C#) and native (C++) code in Unity projects. Windows onlyUnity Profiler integration is now enabled by default to display profiling results directly in your editor.Unreal EngineShow Usages for UINTERFACE in Blueprints.Code completion for BlueprintGetters and Setters..uproject loader suggestions: Use the native .uproject format instead of generating solution files, simplifying project setup on Windows, Mac, and Linux.GodotFor Godot development, Rider now bundles a new GDScript plugin, providing:Smarter completions for nodes and resources.Ctrl+Click navigation, the Rename refactoring, and Find Usages.Scene Preview tool window with interactive tree, parent method highlights, and performance monitors.Deeper code inspections, stricter untyped value handling, and many fixes for test running and C++ build scenarios.Go in-depth on the latest improvements to game development with Rider here.Code analysis and language supportExtended C# 14 supportRider 2025.2 brings initial support for the latest additions in C# 14, as well as a range of other improvements to code analysis. Here are some highlights:Extension members: Initial support for code completion, usage search, and refactorings.Partial events and constructors.Null-conditional assignments using a?.b = c and a?[i] = c.User-defined compound assignment operators.Roslyn supportRoslyn support in this release includes enhanced CompletionProvider functionality, enabling richer context-aware code completion through analyzers and community packages. It also introduces Roslyn suppressors, which silently suppress diagnostics in the background to reduce noise and improve clarity in the editor.F# improvementsThe F# plugin brings better import suggestions, smarter code annotations, improved type inference, and fixes for interop issues and F# scripts. For the full list of updates and fixes, check the F# plugin release notes.Web and database developmentExperimental support for the TypeScript-Go language server introduces a new way to work with TypeScript. Just install the @typescript/native-preview package and Rider will handle the rest.New SQL database project support makes it easy to work with Microsoft.Build.Sql-style SDK projects. Youll get templates, schema comparison, database import, and publishing capabilities.Deprecations and transitionsCode coverage for Mono and Unity is now discontinued. This allows us to focus on performance and branch coverage while Unity transitions to CoreCLR.Dynamic Program Analysis (DPA) will be sunset in 2025.3, with key analytic capabilities folded into the Monitoring tool window. dotUltimate license will be required to take full advantage of the investigative capabilities of the tool.Please refer to this blog post for details.As always, you will find the full overview of enhancements included in the release on our websites Whats New in Rider 2025.2 page and the full list of resolved issues on our issue tracker.You may also be interested in checking out the blog posts about the latest updates to ReSharper. Download Rider 2025.2 Wed love to hear what you think. If you run into issues or have suggestions, please let us know via YouTrack or get in touch on X or Bluesky.
    0 Yorumlar 0 hisse senetleri 15 Views
  • BLOG.JETBRAINS.COM
    Getting Started With Fuzz Testing in CLion
    Fuzz testing is an effective technique for identifying bugs that are difficult to detect using unit tests or static analysis alone. This article will show you how to perform fuzz testing in CLion, analyze the results, and debug a tested function. Well use CI Fuzz, a fuzz testing tool developed by Code Intelligence, a company that specializes in C and C++ fuzz testing solutions. The Code Intelligence team also contributed to this article.If you are already familiar with the concept of fuzz testing, feel free to skip the next two sections and jump straight to the practical part.What is fuzz testing?Fuzz testing, also called fuzzing, is an automated dynamic software testing technique that provides a program with invalid, unexpected, or random data. The goal is to monitor the programs runtime behavior and try to trigger bugs, such as crashes, hangs, or security vulnerabilities. By bombarding the software with a high volume and variety of incorrect inputs, fuzzing aims to uncover hidden bugs and weaknesses that might not be found through traditional testing methods.A useful mental model is to think of a fuzz test as similar to a unit test. But instead of feeding fixed inputs to the system, you supply it with inputs that are carefully selected and strategically mutated by the fuzzer to maximize code coverage.How fuzz testing worksLets assume we have an important function, ExploreSimpleChecks, in our codebase that we want to test:void ExploreSimpleChecks(int a, int b, std::string c) { if (a >= 20000) { if (b >= 2000000) { if (b - a < 100000) { if (c == Attacker) { trigger_global_buffer_overflow(c); } } } }}This function takes three parameters: two integers and one string. Under certain circumstances, it calls the vulnerable trigger_global_buffer_overflow function, which has a buffer overflow vulnerability. To trigger this vulnerability, we need:A test case that reaches the function call, meaning the two integers must be in a specific range, and the string must be Attacker.A check to see if a buffer overflow occurs, since these bugs dont necessarily cause crashes.Now, lets head over to the IDE and run a fuzz test on an example project to see how it works in practice.Running fuzz testing in CLionFirst, we need to install the CI Fuzz tool and download an example project. After that, well complete all the tasks in CLion.1. Install CI FuzzInstall a free trial of CI Fuzz on your machine following the Code Intelligence documentation. Note that you also need to install a build system as a prerequisite. If you prefer CMake, you can use one shipped with CLion and install only CI Fuzz. Otherwise, refer to the Code Intelligence documentation.2. Open an example project in CLionClone the c-cpp-example project and open it in CLion. You can also clone and open the project when CLion is already running by selecting File | New | Project From Version Control in the main menu.Well test the ExploreSimpleChecks function mentioned above, which is located in src/simple_examples/explore_me.cpp. For this, well use the FUZZ_TEST function from simple_checks_test.cpp that takes two parameters a byte buffer and its size:FUZZ_TEST(const uint8_t *data, size_t size) { FuzzedDataProvider fdp(data, size); int a = fdp.ConsumeIntegral<int>(); int b = fdp.ConsumeIntegral<int>(); std::string c = fdp.ConsumeRemainingBytesAsString(); ExploreSimpleChecks(a, b, c);}This fuzz test tries all possible combinations of the a, b, and c parameters in the ExploreSimpleChecks function to find hidden bugs. The FuzzedDataProvider class enables the consumption of specific types of data from the raw fuzzer-generated byte buffer.The mechanism looks very similar to how a unit test works. The only difference is that the function receives the data generated by the fuzzing engine as opposed to fixed, predefined inputs.To test your own code, use the methods provided by the FuzzedDataProvider class to consume the required types of data.3. Run a fuzz testIn the simple_checks_test.cpp file, you can see the fuzz test alongside two unit tests written for the same function.To run the test, open the IDEs terminal (F12 on macOS or Alt+F12 on Windows/Linux) and execute the command:cifuzz run simple_checks_fuzz_testThe output will include a report with the test summary. If a bug is found, the report will show its location in the source code.Heres our report:As it turns out, theres a bug on line 40 in explore_me.cpp that causes a global buffer overflow. Severity 9 out of 10 indicates a rather critical issue, so its a good thing we caught it!After the test is complete, CI Fuzz also suggests checking how much code the fuzz test has covered, asking Do you want to collect coverage information?. This can be useful, for example, if you want to identify functionality that has not yet been tested. If you are ready to check the coverage, type Y, and youll see the coverage report:In addition to the report in the terminal, youll see the HTML report that will open in your default browser:If you dont need the test coverage information at the moment, simply type N. Later, you can run the cifuzz coverage simple_checks_fuzz_test command separately. You can also get a combined coverage report that represents the merged coverage reached by all fuzz tests. To generate this report, either provide a list of fuzz tests to the coverage command or execute the command without specifying fuzz tests.4. Debug findingsCI Fuzz provides actionable results, including the exact input that triggered the finding and the complete stack trace. This allows you to easily debug the issue and understand the root cause by observing how the code handles the crashing input step by step. CI Fuzz offers a DEBUG_FINDING macro to facilitate this process:This macro registers a unit test that starts with the crashing input, triggering the finding.To start debugging:Add a DEBUG_FINDING macro with the finding name to your test code (as shown in line 16 above).Click the green Run Test button next to the macro.Select the Debug configuration:With this option, you can access a native debugging session in CLion that is similar to debugging any unit test:ConclusionThrough fuzz testing, weve discovered a critical memory corruption bug something that would have been difficult to catch with unit or integration tests. The latter typically rely on predefined inputs and expected outputs, whereas fuzz testing simulates more unpredictable, real-world scenarios. This simple example demonstrates the effectiveness of fuzz testing in finding bugs and security vulnerabilities beyond just testing the code functionality.The combination of CI Fuzz and CLion offers a powerful and efficient way to find hidden bugs in your code through fuzz testing. As youve seen, integrating CI Fuzz into your CLion workflow is simple, enabling you to concentrate on developing high-quality software.We encourage you to try out CI Fuzz for your projects and experience its capabilities firsthand. Your feedback is invaluable. Whether you discover new insights, encounter challenges, or have suggestions for improvements, we want to hear from you. Please share your thoughts in the comments!
    0 Yorumlar 0 hisse senetleri 15 Views
  • FR.GAMERSLIVE.FR
    Test de Drag x Drive sur Nintendo Switch 2
    Nintendo profite gnralement du lancement dune nouvelle console pour proposer des expriences indites mettant en valeur ses fonctionnalits exclusives. La Switch avait eu 1-2 Switch, la Wii U nous avait offert Nintendo Land et la Wii, linoubliable Wii Sports....
    0 Yorumlar 0 hisse senetleri 14 Views
  • 0 Yorumlar 0 hisse senetleri 14 Views
  • Reflective Tape Market Projected for Strong Growth Amid Rising Safety and Visibility Requirements
    According to our latest research, the global reflective tape market size was valued at USD 1.38 billion in 2024, and it is anticipated to grow at a CAGR of 5.6% from 2025 to 2033. By the end of 2033, the market is forecasted to reach approximately USD 2.25 billion.  The Reflective Tape Market is witnessing significant expansion, driven by growing awareness of...
    0 Yorumlar 0 hisse senetleri 18 Views
  • YUBNUB.NEWS
    Rick Wilsons Slimy Smears: Attacking Casey DeSantis with Debunked Lies to Dodge His Own Scandals
    Unfortunately, the trolls are back out, the particularly short and bald headed ones, and this time, they are bothering Casey DeSantis and the good work she is doing with 'Hope Florida'. Advertisement
    0 Yorumlar 0 hisse senetleri 14 Views
  • YUBNUB.NEWS
    Some DC Locals Arent Convinced Their Shooting-Infested City Has A Crime Problem
    Some Washington, D.C. residents are desensitized to violence in the nations capital and are questioning President Donald Trumps move to bring in the national guard to reduce crime, Daily Caller
    0 Yorumlar 0 hisse senetleri 14 Views
  • YUBNUB.NEWS
    Zelenskyy Meets Starmer for Talks Ahead of TrumpPutin Summit
    Ukrainian President Volodymyr Zelenskyy (R) talks to British Prime Minister Keir Starmer (L) in the garden of 10 Downing Street in London on Aug. 14, 2025. PA MediaUkrainian President Volodymyr Zelenskyy
    0 Yorumlar 0 hisse senetleri 14 Views