Memory size of Javascript Boolean

shevchenkonik

Nik Shevchenko

Posted on February 20, 2020

Memory size of Javascript Boolean

Introduction

Javascript in the browser works a level above Javascript Engine (V8, Rhino, JavaScriptCore, SpiderMonkey). These engines follow the ECMAScript Standards. ECMAScript defines the standard for the scripting language. [1]

In this post, we will use V8 Engine by Google. The V8 Engine:

  • The V8 Engine is written in C++ and used in Chrome & in Node.js, among others.
  • It implements the ECMAScript Standard as specified in ECMA-262. [1]

More specific documentation of the V8 Engine is available at docs.

The main scheme of compilation JavaScript code to Machine Code:

Javascript to Machine Code scheme

Each object takes a specific size in memory and C++ or ECMAScript specify on this size.

Boolean

Size: 4 bytes or 1 byte

A boolean is actually 1 byte. But alignment may cause 4 bytes to be used on a 32-bit platform or 8 bytes on a 64-bit platform. This old trick comes from the observation that allocated memory takes up at least 4 or 8 bytes, and are aligned in the way that the least significant bit or three will be zero.

In C++, the size of the type boolean is implementation-defined (expr.sizeof[p1]) and is usually equal to 1 (the size of the type char, and the smallest size a type can have), but is not required to be (expr.sizeof[fn77]): in particular, in Visual Studio up to version 4.2, it was 4. More information about C++ boolean values is available at docs[expr.sizeof(7.6.2.4)].

Resources

[1] –– https://www.ecma-international.org/publications/standards/Ecma-262.htm

[2] –– https://www.quora.com/In-C%2B%2B-what-is-the-size-of-type-bool/answer/Sergey-Zubkov-1?ch=10&share=2471829a&srid=lXWU

[3] –– https://www.freecodecamp.org/news/understanding-the-core-of-nodejs-the-powerful-chrome-v8-engine-79e7eb8af964/

[4] –– https://stackoverflow.com/questions/32733314/in-v8-how-are-primitive-types-such-as-null-undefined-and-boolean-stored-in-me

💖 💪 🙅 🚩
shevchenkonik
Nik Shevchenko

Posted on February 20, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Memory size of Javascript Boolean
javascript Memory size of Javascript Boolean

February 20, 2020