Comments (3)
Yes, that would absolutely be fine by us.
Note that we are routinely updating our code to reflect new behaviors as changes to the runtime occurs
For example, we used to have our own lock free dictionary and switch to ConcurrentDictionary
in some cases recently.
May be worth also re-visting that one in a while
from ravendb.
I have started taking a look to figure out which benchmarks would be the best candidates to copy over into the performance benchmark tests. I am wondering if there are any specific benchmarks that have been useful for catching regressions in the past or that y'all think would be best to include in the copied tests?
It seems that the Micro, ServerStoreTxMerger, Voron, and VxSort benchmark sets are the ones already using Benchmark DotNet, which is what we use for most of our tests already. As such, my initial plan is to focus on the Micro benchmarks as a starting point for the benchmarks to setup. Please let me know any thoughts!
from ravendb.
For catching platform regressions (that could happen when we update .Net version), I would say that from the Micro project you could include the following:
- HopeEncoder
- IntegerEncoder
- TypeCache
- PIRandomRead
- PIRandomWrite
- Compare
- Diff
BlittableJsonBench.cs
has some that are important to track over time. The Voron ones are too low level (specially the Corax ones) but IF I would want to have a baseline I would include the BTREE and the TABLE ones. Corax ones are too micro to make a dent because we know that bottlenecks are not there anyways, you would be wasting compute power for something that would not change the outcome. VxSort are not important, they are too low level and just used for metrics on the underlying sorting algorithm for Corax.
BUT, only the ones that call the RavenDB code... in all cases most of the benchmarks are immortalized code (code that we used to have or had developed to test optimization ideas) in the project itself to use as comparison. We keep them also because the underlying optimizations performed at the platform level would throw a curve-ball or two between major releases.
It's important to know though that those are mostly internal calls, and therefore are not required to stay the same even within minor releases.
from ravendb.
Related Issues (20)
- RavenDB.Embedded - Win Arm 64 (macOS M2) - librvnpal version might be invalid, missing or not usable on current platform HOT 2
- Raven.Client.Exceptions.RavenException: System.IndexOutOfRangeException: Index was outside the bounds of the array. HOT 23
- Dockerized RavenDB ports setups HOT 12
- Raven testserver cannot run with .NET v8 HOT 1
- Dictionary inconsistencies between store and patch for enum keys HOT 4
- Where to find RVN for MacOS? Or how to generate a proper Helm file? HOT 2
- Helm installation failed HOT 1
- Object reference not set to an instance of an object HOT 5
- Auto index and query by child object properties produces unexpected result HOT 1
- Backup Restore ends in Exception HOT 6
- Unable to load document without ChangeVector in a cluster transaction session HOT 1
- Dictionary Collection Values Being Altered After Patch Operation HOT 1
- Corax indexing error: Got an invalid container id: -1 HOT 6
- InvalidQueryException HOT 5
- Querying index on nested properties returns no results 6.0.100 HOT 15
- 6.0.100 (Corax) Killed by OOM, "corrupted" 50% of databases HOT 27
- JsonConverter is ignored when used within "In()" query HOT 2
- Request for SMB Mount Support in Azure Container Apps for Volume Persistence HOT 3
- Can't delete DB on arm64v8 Docker image HOT 4
- Remove polyfill packages for newer TFM
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ravendb.