Comments (3)
A. we tested large Value array typed malloc, but performance is too bad..(versus SmallValue array)
because telling to bdwgc element of array are POD or pointer is slow.
but even internal value of SmallValue is always pointer, odd internal value of SmallValue is always integer,
so we don't have to tell to bdwgc element of array is POD or pointer
B. we tested doing common operations with SmallValue. but it is slow...
testing it's type on every operation takes much time. because there is no type information(int, undefined, null, pointer-value...) saved directly(versus Value).
EDITED) I missed one point. doing many floating point operations occurs so many gc_mallloc due to saving floating number in SmallValue
C. In 32 bit system, store Value into SmallValue has 4 byte gain + preventing memory leak
in 64 bit system, store Value into SmallValue has 0 byte gain but this preventing memory leak
That's why we use Value on computing, SmallValue for storage
I am glad if you reduce Value<->SmallValue converting cost
from escargot.
I created common values for smi and value on 64 bit, and it is working now. Please check #92, is this what you prefer?
from escargot.
#92 is very cool. that is good way reducing conversion costs I think
from escargot.
Related Issues (20)
- RELEASE_ASSERT_NOT_REACHED at src/parser/ast/Node.h (315)
- Assertion `context->m_registerStack->size() == before' failed in Escargot::ExpressionStatementNode::generateStatementByteCode HOT 1
- SEGV on unknown address in Escargot::ExecutionState::hasRareData()
- SEGV on unknown address in Escargot::EncodedValue::readPointerIsNumberEncodedValue
- SEGV on unknown address in Escargot::TightVector
- stack-overflow in third_party/yarr/YarrPattern.cpp
- Assertion `slot.m_index != (18446744073709551615UL)' failed in Escargot::GlobalEnvironmentRecord::setMutableBindingByBindingSlot
- Assertion `findResult.first != (18446744073709551615UL)' failed in Escargot::Object::redefineOwnProperty HOT 1
- Assertion `isPointerValue()' failed in Escargot::PointerValue* Escargot::Value::asPointerValue HOT 1
- Assertion `m_optionalChainingJumpPositionLists.size()' failed in Escargot::ByteCodeGenerateContext::addOptionalChainingJumpPosition HOT 1
- stack-overflow in Escargot::ObjectStructureWithoutTransition::lastFoundPropertyIndex
- RELEASE_ASSERT_NOT_REACHED at src/runtime/EnvironmentRecord.h (94) HOT 1
- memcpy-param-overlap in Escargot::VectorCopier HOT 1
- terminate called after throwing an instance of 'Escargot::esprima::Error*' in Escargot::esprima::Parser::parsePrimaryExpression HOT 1
- Null pointer dereference in Escargot::NativeFunctionObject::processNativeFunctionCall HOT 1
- dynamic-stack-buffer-overflow in Escargot::PointerValue::getTypeTag
- global-buffer-overflow in Escargot::InterpreterSlowPath::unaryTypeof
- SEGV on unknown address in Escargot::InterpreterSlowPath::markEnumerateKey
- Invalid pointer passed to free() related to ArrayObject HOT 1
- Null pointer dereference in Escargot::EnumerateObject::checkLastEnumerateKey
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 escargot.