Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.monolex.ai/llms.txt

Use this file to discover all available pages before exploring further.

Performance Benefits

MonoTerm’s Atomic State system dramatically reduces the amount of data processed for each terminal update.

The Big Picture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                       β”‚
β”‚                       PERFORMANCE AT A GLANCE                         β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚                              99.95%                           β”‚   β”‚
β”‚   β”‚                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                       β”‚   β”‚
β”‚   β”‚                         β”‚             β”‚                       β”‚   β”‚
β”‚   β”‚                         β”‚   LESS      β”‚                       β”‚   β”‚
β”‚   β”‚                         β”‚   DATA      β”‚                       β”‚   β”‚
β”‚   β”‚                         β”‚   SENT      β”‚                       β”‚   β”‚
β”‚   β”‚                         β”‚             β”‚                       β”‚   β”‚
β”‚   β”‚                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                       β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚        When you type, MonoTerm sends 99.95% less data than    β”‚   β”‚
β”‚   β”‚        traditional terminals                                  β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Reduction Visualized

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                       β”‚
β”‚   WHEN YOU TYPE ONE CHARACTER                                         β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   BEFORE (Traditional):                                               β”‚
β”‚                                                                       β”‚
β”‚   ####################################################################β”‚
β”‚   ####################################################################β”‚
β”‚   ####################################################################β”‚
β”‚   ####################################################################β”‚
β”‚   ####################################################################β”‚
β”‚                                                                       β”‚
β”‚                              ~50 KB sent                              β”‚
β”‚                         (entire screen data)                          β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   AFTER (Smart Diff):                                                 β”‚
β”‚                                                                       β”‚
β”‚   #                                                                   β”‚
β”‚                                                                       β”‚
β”‚                              ~0.5 KB sent                             β”‚
β”‚                         (only changed line)                           β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   50 KB  ═══════════════════════════════════════════→  0.5 KB β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚                        100x SMALLER                           β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

What Changes When You Type

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                        β”‚
β”‚   TYPING "Hello" IN YOUR TERMINAL                                      β”‚
β”‚                                                                        β”‚
β”‚                                                                        β”‚
β”‚   Your terminal screen (40 rows):                                      β”‚
β”‚                                                                        β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
β”‚   β”‚  1: $ cd my-project                                 β”‚   unchanged  β”‚
β”‚   β”‚  2: $ npm install                                   β”‚   unchanged  β”‚
β”‚   β”‚  3: Done!                                           β”‚   unchanged  β”‚
β”‚   β”‚  4: $ vim file.txt                                  β”‚   unchanged  β”‚
β”‚   β”‚  5:                                                 β”‚   unchanged  β”‚
β”‚   β”‚  ...                                                β”‚   unchanged  β”‚
β”‚   β”‚ 35:                                                 β”‚   unchanged  β”‚
β”‚   β”‚ 36:                                                 β”‚   unchanged  β”‚
β”‚   β”‚ 37:                                                 β”‚   unchanged  β”‚
β”‚   β”‚ 38:                                                 β”‚   unchanged  β”‚
β”‚   β”‚ 39: $ Hello_                                        β”‚   <- CHANGED!β”‚
β”‚   β”‚ 40:                                                 β”‚   unchanged  β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                                                                        β”‚
β”‚                                                                        β”‚
β”‚   Traditional approach:   "Send ALL 40 rows every keystroke"           β”‚
β”‚                           -> 40 rows x 120 cols = 4,800 cells          β”‚
β”‚                           -> ~50 KB per keystroke                      β”‚
β”‚                                                                        β”‚
β”‚   Smart Diff approach:    "Only send row 39 (the changed one)"         β”‚
β”‚                           -> 1 row x 120 cols = 120 cells              β”‚
β”‚                           -> ~0.5 KB per keystroke                     β”‚
β”‚                                                                        β”‚
β”‚                                                                        β”‚
β”‚                           SMART DETECTION                              β”‚
β”‚                                                                        β”‚
β”‚                    Only changed rows are detected and sent             β”‚
β”‚                                                                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Three Modes of Operation

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                       β”‚
β”‚   THREE MODES OF OPERATION                                            β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   MODE 1: FULL                                                β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   When: Major screen changes (opening vim, running ls)        β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                         β”‚   β”‚
β”‚   β”‚   β”‚#################β”‚                                         β”‚   β”‚
β”‚   β”‚   β”‚#################β”‚  All rows sent                          β”‚   β”‚
β”‚   β”‚   β”‚#################β”‚  Full refresh                           β”‚   β”‚
β”‚   β”‚   β”‚#################β”‚                                         β”‚   β”‚
β”‚   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                         β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Data: ~50 KB                                                β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   MODE 2: PARTIAL (DiffHint)                                  β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   When: Small changes (typing, cursor movement)               β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                         β”‚   β”‚
β”‚   β”‚   β”‚.................β”‚                                         β”‚   β”‚
β”‚   β”‚   β”‚.................β”‚  Only changed rows                      β”‚   β”‚
β”‚   β”‚   β”‚#################β”‚  <- this row changed                    β”‚   β”‚
β”‚   β”‚   β”‚.................β”‚                                         β”‚   β”‚
β”‚   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                         β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Data: ~0.5 KB (99% less!)                                   β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   MODE 3: NONE                                                β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   When: Only cursor position changed (blinking)               β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                         β”‚   β”‚
β”‚   β”‚   β”‚.................β”‚                                         β”‚   β”‚
β”‚   β”‚   β”‚.................β”‚  Nothing sent!                          β”‚   β”‚
β”‚   β”‚   β”‚.................β”‚  Just cursor update                     β”‚   β”‚
β”‚   β”‚   β”‚.................β”‚                                         β”‚   β”‚
β”‚   β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                         β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Data: ~0.1 KB (99.9% less!)                                 β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Real-World Scenarios

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                       β”‚
β”‚   HOW MUCH DATA IS SAVED IN DIFFERENT SCENARIOS?                      β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   SCENARIO 1: Writing code (typing)                           β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Traditional:  ####################################  50 KB   β”‚   β”‚
β”‚   β”‚   MonoTerm:     #                                     0.5 KB  β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Savings: 99%                                                β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   For 1000 keystrokes:                                        β”‚   β”‚
β”‚   β”‚     Traditional:  50 MB                                       β”‚   β”‚
β”‚   β”‚     MonoTerm:     0.5 MB                                      β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   SCENARIO 2: Cursor blinking (idle)                          β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Traditional:  ####################################  50 KB   β”‚   β”‚
β”‚   β”‚   MonoTerm:     .                                     0.1 KB  β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Savings: 99.9%                                              β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   For 1 minute of blinking (~60 blinks):                      β”‚   β”‚
β”‚   β”‚     Traditional:  3 MB                                        β”‚   β”‚
β”‚   β”‚     MonoTerm:     6 KB                                        β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   SCENARIO 3: Running 'ls' (full screen update)               β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Traditional:  ####################################  50 KB   β”‚   β”‚
β”‚   β”‚   MonoTerm:     ####################################  50 KB   β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   Savings: 0% (full updates are still full)                   β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚   BUT: This happens rarely compared to typing!                β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Battery and Resource Impact

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                       β”‚
β”‚   WHY LESS DATA = BETTER PERFORMANCE                                  β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚                         THE CHAIN REACTION                    β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β”‚     Less data sent                                            β”‚   β”‚
β”‚   β”‚          β”‚                                                    β”‚   β”‚
β”‚   β”‚          β–Ό                                                    β”‚   β”‚
β”‚   β”‚     Less processing needed                                    β”‚   β”‚
β”‚   β”‚          β”‚                                                    β”‚   β”‚
β”‚   β”‚          β–Ό                                                    β”‚   β”‚
β”‚   β”‚     Less GPU work (fewer pixels to redraw)                    β”‚   β”‚
β”‚   β”‚          β”‚                                                    β”‚   β”‚
β”‚   β”‚          β–Ό                                                    β”‚   β”‚
β”‚   β”‚     Less battery used                                         β”‚   β”‚
β”‚   β”‚          β”‚                                                    β”‚   β”‚
β”‚   β”‚          β–Ό                                                    β”‚   β”‚
β”‚   β”‚     Cooler laptop                                             β”‚   β”‚
β”‚   β”‚          β”‚                                                    β”‚   β”‚
β”‚   β”‚          β–Ό                                                    β”‚   β”‚
β”‚   β”‚     Longer work sessions                                      β”‚   β”‚
β”‚   β”‚                                                               β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚   β”‚                        β”‚    β”‚                        β”‚            β”‚
β”‚   β”‚   TRADITIONAL          β”‚    β”‚   MONOTERM             β”‚            β”‚
β”‚   β”‚                        β”‚    β”‚                        β”‚            β”‚
β”‚   β”‚   Hot laptop           β”‚    β”‚   Cool laptop          β”‚            β”‚
β”‚   β”‚   Battery drains       β”‚    β”‚   Battery lasts        β”‚            β”‚
β”‚   β”‚   Fan spinning         β”‚    β”‚   Fan quiet            β”‚            β”‚
β”‚   β”‚                        β”‚    β”‚                        β”‚            β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Memory Efficiency

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                       β”‚
β”‚   MEMORY ALLOCATION COMPARISON                                        β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   Traditional: Creates new memory for EVERY update                    β”‚
β”‚   ─────────────────────────────────────────────────                   β”‚
β”‚                                                                       β”‚
β”‚   Update 1:  [####] allocate                                          β”‚
β”‚   Update 2:  [####] allocate  [....] garbage                          β”‚
β”‚   Update 3:  [####] allocate  [....] garbage  [....] garbage          β”‚
β”‚   Update 4:  [####] allocate  [....] garbage  [....] garbage  [....] gβ”‚
β”‚                                                                       β”‚
β”‚              β”‚                                                        β”‚
β”‚       Garbage Collector kicks in                                      β”‚
β”‚              β”‚                                                        β”‚
β”‚         PAUSE!                                                        β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   MonoTerm: Reuses memory when possible                               β”‚
β”‚   ─────────────────────────────────────────                           β”‚
β”‚                                                                       β”‚
β”‚   Update 1:  [####] allocate (FULL mode)                              β”‚
β”‚   Update 2:  [####] reuse   <- same memory                            β”‚
β”‚   Update 3:  [####] reuse   <- same memory                            β”‚
β”‚   Update 4:  [####] reuse   <- same memory                            β”‚
β”‚                                                                       β”‚
β”‚              β”‚                                                        β”‚
β”‚       No garbage created!                                             β”‚
β”‚              β”‚                                                        β”‚
β”‚         SMOOTH!                                                       β”‚
β”‚                                                                       β”‚
β”‚                                                                       β”‚
β”‚   Result: No GC pauses = smoother experience                          β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Summary Table

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                       β”‚
β”‚                         PERFORMANCE SUMMARY                           β”‚
β”‚                                                                       β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚   β”‚       METRIC      β”‚    TRADITIONAL    β”‚     MONOTERM      β”‚       β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”‚ Data per          β”‚      ~50 KB       β”‚      ~0.5 KB      β”‚       β”‚
β”‚   β”‚ keystroke         β”‚                   β”‚   (99% less)      β”‚       β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”‚ Data per cursor   β”‚      ~50 KB       β”‚      ~0.1 KB      β”‚       β”‚
β”‚   β”‚ blink             β”‚                   β”‚   (99.9% less)    β”‚       β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”‚ Memory            β”‚   Every frame     β”‚   Full mode only  β”‚       β”‚
β”‚   β”‚ allocation        β”‚                   β”‚   (reused)        β”‚       β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”‚ GC pressure       β”‚   HIGH            β”‚   ELIMINATED      β”‚       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”‚ Screen flicker    β”‚   POSSIBLE        β”‚   ELIMINATED      β”‚       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β”‚ Battery impact    β”‚   HIGH            β”‚   LOW             β”‚       β”‚
β”‚   β”‚                   β”‚                   β”‚                   β”‚       β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

DiffHint Optimization

The DiffHint system (Full, Partial, None) intelligently selects the minimum data transfer needed for each update, achieving up to 99.95% reduction in data transfer.