Comments (13)
Thanks debugging and profiling.
Initial observations:
- Memory usage remains constant even when garbage collection is relaxed
- Most of the time is spent parsing the JSON with low CPU usage
- Considering parallelism, i.e., workers when parsing JSON arrays
from objeck-lang.
The primary issue was memory management thresholds. The VM was tuned to run on low-memory hosts (i.e., RPI4). The initial memory size for programs outside of RPI4 was changed from 4M to 1G. I am looking into setting available VM memory to the 16th of the system memory. For now, things should be faster.
from objeck-lang.
The primary issue was memory management thresholds. The VM was tuned to run on low-memory hosts (i.e., RPI4). The initial memory size for programs outside of RPI4 was changed from 4M to 1G. I am looking into setting available VM memory to the 16th of the system memory. For now, things should be faster.
https://www.baeldung.com/jvm-parameters
from objeck-lang.
The primary issue was memory management thresholds. The VM was tuned to run on low-memory hosts (i.e., RPI4). The initial memory size for programs outside of RPI4 was changed from 4M to 1G. I am looking into setting available VM memory to the 16th of the system memory. For now, things should be faster.
Yep, I believe the VM has an .ini config file as well. I have tried to avoid VM parameters but will now look into this further.
from objeck-lang.
The primary issue was memory management thresholds. The VM was tuned to run on low-memory hosts (i.e., RPI4). The initial memory size for programs outside of RPI4 was changed from 4M to 1G. I am looking into setting available VM memory to the 16th of the system memory. For now, things should be faster.
Added prepended command line parameter --GC_THRESHOLD=
for example 100k
, 4m
and 1g
. The new runtime host memory check is the default.
from objeck-lang.
I believe the VM has an .ini config file as well.
How that file look like? What about a sample .ini config file
?
from objeck-lang.
I believe the VM has an .ini config file as well.
How that file look like? What about a sample
.ini config file
?
Nevermind, it was there. I will add it to the guide tomorrow. The file is config.prop
however it only sets system properties.
from objeck-lang.
The file is
config.prop
however it only sets system properties.
It's in lib\native\misc
directory. Seems to be useless to me.
from objeck-lang.
For now, things should be faster.
Was this issue really fixed or not? You have the JSON file, you could test.
from objeck-lang.
@tqo50396 I tested against the JSON file you provided. I then added auto-tuning parameters before adding support for manual configuration. All are based on the sample JSON file you gave me.
from objeck-lang.
@tqo50396 I tested against the JSON file you provided. I then added auto-tuning parameters before adding support for manual configuration. All are based on the sample JSON file you gave me.
But what I want to know is simply if you fixed the issue or not. If you believed that you fixed it, you could close this issue. I can't test since I no longer use Objeck (nor do I want to fire up MSYS2 to compile Objeck from source).
from objeck-lang.
from objeck-lang.
Yes, it is fixed. I will close the issue.
The Objeck VM eats more RAM but the performance is still terrible. I'm very disappointed.
Download Adept here: https://github.com/AdeptLanguage/Adept/releases/tag/Nightly
Compile the code with adept test.adept
:
pragma compiler_version '2.8'
import basics
import JSON
func main {
json JSON = JSONFromFile("Web.MsHtml.json")
if json.kind() == ::UNDEFINED {
print("Failed to load json")
} else {
Constants <JSON> List = json.field("Constants").array().get()
Constant0 JSON = Constants.get(0)
print(Constant0.field("Name").string().get())
}
}
You will see how fast it is compared to your parser.
from objeck-lang.
Related Issues (20)
- Data Type Formatting Options HOT 3
- Bitwise NOT HOT 7
- Strings to be UTF-16 on all platforms? HOT 3
- Garbage Collector Deadlock HOT 1
- Can I change the directory structure of the Objeck distribution? HOT 1
- MSYS2 package for Objeck
- FreeBSD support HOT 1
- OpenBSD support HOT 1
- NetBSD support HOT 1
- HaikuOS support HOT 1
- OpenIndiana support HOT 1
- Android support HOT 1
- iOS/iPadOS support HOT 1
- Support musl-based Linux HOT 1
- Support legacy MSVCRT-based MinGW HOT 3
- Support ReactOS HOT 1
- Support Windows ARM HOT 2
- Optimized builds HOT 5
- Bug in code for Collections 'Filter' methods HOT 1
- Primitive support for '<' and '>' HOT 1
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 objeck-lang.