# Grease Pencil 3.0 Perfromance Tests
Test file:
* 2 GP Objects
* 109 Layers
* 15,069 Frames
* 405,517 Strokes
* 4,904,707 Points
Hardware:
* Processor: 16 x AMD Ryzen 7 5800X 8-Core Processor
* RAM: 32 GiB
* GPU: NVIDIA GeForce RTX 3060
### File size
| Current GP | GP 3.0 | Decrease |
| -----------| ------ |--------|
| 142.6 MiB | 49.3 MiB | 65.4%|
### File open
| Current GP | GP 3.0 | Speedup |
| -----------| ------ |--------|
| 1617.5 ms | 451.1 ms | 3.59x |
### File save (compressed)
| Current GP | GP 3.0 | Speedup |
| -----------| ------ |--------|
| 534.3 ms | 125.7 ms | 4.25x |
### Playback
Both files played back at 60 frames per second (even from a cold start).
### Drawing a stroke (time to update)
This is the time it takes to update after the drawing operator ran (includes encoding of the undo step and the dependency graph update).
| Current GP | GP 3.0 | GP 3.0 (with implicit sharing patch #106228) | Speedup |
| -----------| ------ |--------|--------|
| 93.6 ms | 104.7 ms | 68.4 ms | 1.37x |
### Undo drawing a stroke
This includes the time it takes to decode the undo step and the update of the dependency graph after the decode happend.
| Current GP | GP 3.0 | GP 3.0 (with implicit sharing patch) | Speedup |
| -----------| ------ |--------|--------|
| 831.6 ms | 216.2 ms |126.0 ms | 6.58x |
### Add new keyframe (time to update)
This includes encoding of the undo step and the dependency graph update.
| Current GP | GP 3.0 | Speedup |
| -----------| ------ |--------|
| 370 ms | 70.4 ms | 5.26x |