microsoft / microsoft/TypeScript-Sublime-Plugin

Use an alternative JSON deserialization library

Open
#157 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Enhancement
Dominant language
JavaScript
Stars
1.7k
Forks
236
Avg merge
21d 13h
Merged PRs (30d)
1

Description

I've heard through the grapevine that one of our current constraints has been JSON size due to the limits of parsing speed. A fairly recent blog post I read actually points out two incredibly capable competitors:

See: JSON vs simpleJSON vs ultraJSON

Offhand notes:

  • Both libraries seem to be consistently faster for loads.
    • This is significant beacuse we only do loads.
  • UltraJSON generally seems to be faster than simplejson.
  • UltraJSON has a C code dependency.
  • simplejson is written in Python, but has an optional C backend for speed.

I think it would be worth experimenting with the two to see what kinds of gains we can get.


I've plotted the data from the blog post below.

Loads

image

image

Dumps

image

image

Contributor guide

No contributing guide indexed for this repository

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

The issue names no repository files, tests, or entry points; start by locating the current JSON deserialization path in the plugin. Benchmark loads with simplejson and UltraJSON against the existing implementation, accounting for UltraJSON's C dependency, and document whether the measured gains justify a change.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
performance, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.