microsoft / microsoft/STL

`<stacktrace>`: Should we reduce allocations in `operator<<` and `formatter`?

Open
#5,423 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
C++
Stars
11.1k
Forks
1.7k
Avg merge
4d 15h
Merged PRs (30d)
22

Description

It seems that we can avoid allocating whole strings in the operator<<s by designing suitable filling functions.

(_Os should be locked and unlocked directly in the operator<<s.)

https://github.com/microsoft/STL/blob/5762e6bcaf7f5f8b5dba0a9aabf0acbd0e335e80/stl/inc/stacktrace#L332-L340

But this approach probably needs more xsputn calls, as the underlying buffer can have various types. Do we want this?


It seems to me that such optimization in formatter specializations would be less controversial.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read stl/inc/stacktrace around lines 332-340, focusing on operator<<, formatter specializations, _Os locking, and the underlying buffer's xsputn behavior. The issue needs a decision on whether reducing temporary string allocations justifies the additional xsputn calls before implementation scope and completion criteria can be defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.