typelevel / typelevel/cats-effect

Future "Performance" page for CE3 docs

Open
#1,107 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

:books: docs
Dominant language
Scala
Stars
2.2k
Forks
576
Avg merge
2d 11h
Merged PRs (30d)
18

Description

Effect type performance is usually an exercise in missing the point, but people do kind of want to hear about it. I think it's worth talking about CE3 IO's performance relative to CE2's in two specific areas:

  • Straightline performance (i.e the async "deep" and "shallow" bind benchmarks)
  • Contended scheduling performance

The former is something that people often talk about because it's easy to understand, but it's also not really relevant in 99% of applications. It's still fun to look at. The contended performance though is something that we're improving dramatically in CE3 due to #1095, and it's also something that people are definitely going to be able to measure in real world applications, so I think it's worth explaining and trumpeting.

It's also worth talking about JavaScript performance a bit and the intricacies of the fact that our scheduler correctly and efficiently deals with the event queue.

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

Start by reviewing the CE2/CE3 performance context described here and issue #1095, focusing on the deep/shallow bind and contended scheduling benchmarks. The page is done when it explains those comparisons, their real-world relevance, and JavaScript event-queue scheduling performance.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, scala
Domain
documentation, performance
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.