Comments (1)
The piece table should drastically reduce the cost of inserting into large buffers, as most of the cost of our previous strategy is because we incur lots of copying / memory cost in creating new arrays when splicing. Ideally, with the piece table strategy, the cost should be the same when inserting in a large buffer or a small buffer.
In the current state of the world, as measured by #96 , that is not the case:
+----------------------------------------------------------------------------------------------------------------------------------------------+
| BENCHMARK | TIME | MINOR GC | MAJOR GC | MINOR ALLOC | PROMOTED | MAJOR ALLOC |
|-------------------------------------------------+---------------------+------------+------------+---------------+------------+---------------|
| Buffer: Add lines to empty buffer | 1.22300958633 | 334 | 67 | 24359 | 1627 | 100002627 |
|-------------------------------------------------+---------------------+------------+------------+---------------+------------+---------------|
| Buffer: Insert line in middle of small buffer | 0.000998497009277 | 1 | 0 | 244029 | 25 | 25 |
|-------------------------------------------------+---------------------+------------+------------+---------------+------------+---------------|
| Buffer: Insert line in middle of large buffer | 0.546031951904 | 401 | 80 | 42349 | 3945 | 110005945 |
|-------------------------------------------------+---------------------+------------+------------+---------------+------------+---------------|
| Buffer: Clear large buffer | 0. | 1 | 0 | 19029 | 25 | 25 |
from oni2.
Related Issues (20)
- Failed to compile on Ubuntu20.04 with Clang14 due to skia HOT 2
- Demo the app. HOT 4
- packaging: `.desktop` does not have a proper vendor prefix
- Release does not run on Fedora 35 HOT 1
- Wakatime not installing: (Failure "Unable to locate extension after install")
- open onivim2 from the terminal HOT 2
- Tab consistency
- Where can i find an app image for onivim2
- Please update Docker build in user manual HOT 2
- How can I help? HOT 3
- Has the dev stopped? HOT 13
- Build error
- start onivim as daemon
- Docker build: `No package git222 available` HOT 11
- AppImage fails to open at all HOT 1
- Neo2 keyboard layout, some keys not working
- Cannot Download appimg HOT 7
- Pain
- Status of the project? HOT 2
- Unable to download via license key "An expiration date cannot be in the past."
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 oni2.