STL VS tracy

Compare STL vs tracy and see what are their differences.

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
STL tracy
160 67
10,481 10,997
1.1% 3.0%
9.6 9.7
2 days ago 15 days ago
C++ C++
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

STL

Posts with mentions or reviews of STL. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-10-14.
  • The case of the critical section that let multiple threads enter a block of code
    1 project | news.ycombinator.com | 24 Mar 2025
    Yeah, as that Rust issue states, this was first replicated by a C++ programmer and STL (the person, not the Microsoft name for the C++ stdlib) said it looks like a bug in SRWLock.

    There's a Microsoft internal ticket which I can't read (but STL can because he's a Microsoft employee) but there's also a GitHub issue for STL (this time the stdlib, a GitHub project, although it was opened by the person) https://github.com/microsoft/STL/issues/4448 and it's confirmed in that issue this is a bug in SRWLock, thus no work for STL† (either the project or the person).

    It's not unusual (especially in C++ but this happens anywhere) that people would rather contort themselves to believe crazy things than accept that it's just a bug.

    † Both Windows and C++ holds themselves to a very low standard, "Yeah, it's broken, too bad" is acceptable. Once you've determined that it's a bug you're done.

  • C++ String Conversion: Exploring std:from_chars in C++17 to C++26
    4 projects | news.ycombinator.com | 14 Oct 2024
    I believe the impl you link to is not fully standards compliant, so just calls back to

    MSFT's one is totally standards compliant and it is a very different beast: https://github.com/microsoft/STL/blob/main/stl/inc/charconv

    Apart from various nuts and bolts optimizations (eg not using locales, better cache friendless, etc...) it also uses a novel algorithm which is an order of magnitude quicker for many floating points tasks (https://github.com/ulfjack/ryu).

    If you actually want to learn about this, then watch the video I linked earlier.

  • Rust Atomics and Locks by Mara Bos
    2 projects | news.ycombinator.com | 13 Aug 2024
    SRWLocks are a Windows feature, not a Rust feature, so you're looking in the wrong place.

    Here's STL's (nominative determinism at work) GitHub issue for Microsoft's C++ stdlib implementation about this https://github.com/microsoft/STL/issues/4448

    Here's the C++ Reddit thread where the bug was shown: https://www.reddit.com/r/cpp/comments/1b55686/maybe_possible...

    Here's the Rust change which was merged for 1.78: https://github.com/rust-lang/rust/pull/121956/

  • DARPA: Translating All C to Rust (Tractor)
    5 projects | news.ycombinator.com | 30 Jul 2024
    Interesting thanks. Seems the reason I couldn't find anything on that is because it's not really documented?

    https://github.com/microsoft/STL/issues/586

    > We talked about this at the weekly maintainer meeting and decided that we're not comfortable enough with the (lack of) design of this feature to begin documenting it for wide usage.

  • Driving Compilers
    1 project | news.ycombinator.com | 29 Jul 2024
    Microsoft does officially call their implementation of the C++ Standard Library in MSVC "The STL." This is due to historical confusion, of course, but it persists to this very day in official materials. Check the name of this repository.

    https://github.com/microsoft/STL

  • Show HN: Logfmtxx – Header only C++23 structured logging library using logfmt
    3 projects | news.ycombinator.com | 3 Apr 2024
    Again, they are barely functional.

    MSVC chokes on many standard-defined constructs: https://github.com/microsoft/STL/issues/1694

    clang does not claim to be "mostly usable" at all - most papers are not implemented: https://clang.llvm.org/cxx_status.html#cxx20

    And gcc will only start ot be usable with CMake when version 14 is released - that has not happened yet.

    And, as I mentioned before, IDE support is either buggy (Visual Studio) or non-existing (any other IDE/OS). So you're off to writing in a text editor and hoping your compiler works to a somewhat usable degree. Yes, at some point people should start using modules, I agree, but to advise library maintainers to ship modularized code... the tooling just isn't there yet.

    I mean, the GitHub issue is Microsoft trying to ship their standard library modularized, they employ some of the most capable folks on the planet and pay them big money to get that done, while metaphorically sitting next to the Microsoft compiler devs, and they barely, barely get it done (with bugs, as they themselves mention). This is too much for most other library maintainers.

  • Cpp2 and cppfront – An experimental 'C++ syntax 2' and its first compiler
    7 projects | news.ycombinator.com | 31 Mar 2024
    Notice that there are in practice three distinct implementations of the C++ standard library. They're all awful to read though, here's Microsoft's std::vector https://github.com/microsoft/STL/blob/main/stl/inc/vector

    However you're being slightly unfair because Rust's Vec is just defined (opaquely) as a RawVec plus a length value, so let's link RawVec, https://doc.rust-lang.org/src/alloc/raw_vec.rs.html -- RawVec is the part responsible for the messy problem of how to actually implement the growable array type.

    Still, the existence of three C++ libraries with slightly different (or sometimes hugely different) quality of implementation means good C++ code can't depend on much beyond what the ISO document promises, and yet it must guard against the nonsense inflicted by all three and by lacks of the larger language. In particular everything must use the reserved prefix so that it's not smashed inadvertently by a macro, and lots of weird C++ idioms that preserve performance by sacrificing clarity of implementation are needed, even where you'd ordinarily sacrifice to get the development throughput win of everybody know what's going on. For example you'll see a lot of "pair" types bought into existence which are there to squirrel away a ZST that in C++ can't exist, using the Empty Base Optimisation. In Rust the language has ZSTs so they can just write what they meant.

  • C++ Specification vs Implementation
    3 projects | /r/cpp_questions | 19 Nov 2023
  • C++23: Removing garbage collection support
    3 projects | news.ycombinator.com | 1 Nov 2023
    Here is Microsoft's implementation of map in the standard library. I think of myself as a competent programmer / computer scientist. I couldn't write this: https://github.com/microsoft/STL/blob/f392449fb72d1a387ac502...
  • std::condition_variable wait for (very) long time
    1 project | /r/cpp | 4 Jul 2023
    Be careful on Windows, the MSVC STL implementation uses the system time, so it can be badly impacted by clock adjustments: https://github.com/microsoft/STL/issues/718

tracy

Posts with mentions or reviews of tracy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-02-14.
  • Rust: Doubling Throughput with Continuous Profiling and Optimization
    3 projects | news.ycombinator.com | 14 Feb 2025
    I'm not sure if this is what you are looking for but I found https://github.com/wolfpld/tracy to work rather well. There is an integration for the tracing crate that can get you very far: https://lib.rs/crates/tracing-tracy. If you're just looking for a very high level report then this might be a bit too much detail.
  • Clay – UI Layout Library
    7 projects | news.ycombinator.com | 19 Dec 2024
    > First, this isn't really true. You might typically have a window, a container, a layout object and then your gui components.

    Any non-trivial UI will include many complicated workflows and layouts. "GUI components" themselves will often be combinations of other, more primitive, GUI components.

    > Second you don't need nested calls, you just add one component to another.

    You're just describing currying here (function application or nesting hierarchies are the same thing), and both are equally annoying when building interfaces.

    > Why would that be true?

    Because you will want certain things to be reusable, it's a pretty common pattern.

    > This is a bizarre way to make a GUI let alone thinking it's necessary. Where is this idea coming from?

    It's a pretty common pattern for building GUIs. Take a look at tracy[1], built using ImGUI. All the different components are split up in their own file, I'm not sure what the alternative would be, like a 100,000-line "master UI" file? Seems like a much worse idea. Looking at the tracy code, it's very well-written, but also super weird to follow. For example, color defaults seem to be located in header files[2]. I mean, yuck.

    [1] https://github.com/wolfpld/tracy/tree/master/profiler/src/pr...

    [2] https://github.com/wolfpld/tracy/blob/master/profiler/src/pr...

  • Intentrace: Strace for Everyone
    4 projects | news.ycombinator.com | 7 Nov 2024
    While it doesn't capture every syscall, you can get pretty far with the (seemingly little known) Endpoint Security Framework: https://developer.apple.com/documentation/endpointsecurity

    I cobbled together a little tool at my previous job that would capture a full trace of all process fork+exec and file opens, which would then present all of these events in the usual tracing UI (like you'd get when view a trace of a single program with Tracy[1] or Perfetto[2]).

    We had a massive monorepo built with bazel and a heap of shell, and it wasn't clear which part of our code base was responsible for generating some mis-generated file. This tool gave me the whole inter-process call stack, complete with arguments and environment variables, letting me quickly find where and how to fix the problem.

    It's such a nice tool to have that it kinda blows my mind that no one has openly published anything like it. By leveraging eBPF on Linux, the same UI could be used on both macOS and Linux. If I had more time and energy, I'd do it myself.

    [1]: https://github.com/wolfpld/tracy

    [2]: https://perfetto.dev/

  • Tracy: A real time, nanosecond resolution frame profiler
    4 projects | news.ycombinator.com | 23 Sep 2024
    https://github.com/wolfpld/tracy/issues/887

    MSVC changed the mutex constructor to constexpr, breaking binary backward compatibility. They say WONTFIX, you must use the latest MSVCRT with the latest MSVC. But I have the latest MSVCRT installed? Whatever - a workaround was pushed to master yesterday.

  • Logging all C++ destructors, poor mans run-time tracing
    3 projects | news.ycombinator.com | 21 Sep 2024
    I consider Tracy the state of the art for profiling C++ applications. It’s straightforward to integrate, toggle, gather data, analyze, and respond. It’s also open source, but rivals any product you’d have to pay for:

    https://github.com/wolfpld/tracy

  • Trace Profiler 0.11.1
    1 project | news.ycombinator.com | 28 Aug 2024
  • Flame Graphs: Making the Opaque Obvious (2017)
    3 projects | news.ycombinator.com | 27 Jun 2024
    For C++ applications, nothing beats Tracy’s flame graphs in value per dollar. We are using it at Adobe with great effect. It can handle mutex lock contention, runtime values and notes, arbitrary value graphs, and more. Highly recommended: https://github.com/wolfpld/tracy
  • Tracy: A real time frame and sampling profiler for games and other applications
    1 project | news.ycombinator.com | 12 May 2024
  • Tracy: Real-time nanosecond resolution frame profiler
    1 project | news.ycombinator.com | 22 Mar 2024
  • Google/orbit – C/C++ Performance Profiler
    3 projects | news.ycombinator.com | 11 Feb 2024
    i don't really think there is _anything_ that comes even close to tracy https://github.com/wolfpld/tracy.

    on top of this, given google's penchant for dumping projects aka abandonware, this would be an easy pass.

What are some alternatives?

When comparing STL and tracy you can also consider the following projects:

EA Standard Template Library - EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.

optick - C++ Profiler For Games

gcc

orbit - C/C++ Performance Profiler

robin-hood-hashing - Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20

palanteer - Visual Python and C++ nanosecond profiler, logger, tests enabler

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured