We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jerryscript may stuck on running garbage collecton in my test case.
release v3.0.0
Ubuntu 22.04.4 LTS (Linux 6.8.0-40-generic x86_64)
python3 tools/build.py --clean --cpointer-32bit=ON --error-messages=ON --line-info=ON --mem-heap=1572864 --gc-mark-limit=1
if (typeof performance === "undefined") { var performance = Date; } Math.commonRandom = (function() { var seed = 49734321; return function() { // Robert Jenkins' 32 bit integer hash function. seed = ((seed + 0x7ed55d16) + (seed << 12)) & 0xffffffff; seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff; seed = ((seed + 0x165667b1) + (seed << 5)) & 0xffffffff; seed = ((seed + 0xd3a2646c) ^ (seed << 9)) & 0xffffffff; seed = ((seed + 0xfd7046c5) + (seed << 3)) & 0xffffffff; seed = ((seed ^ 0xb55a4f09) ^ (seed >>> 16)) & 0xffffffff; return seed; }; })(); Math.commonRandomJS = function () { return Math.abs(Math.commonRandom() / 0x7fffffff); } var MIN_NODES = 20; var MAX_NODES = 1<<31; var MIN_EDGES = 2; var MAX_INIT_EDGES = 4; var MIN_WEIGHT = 1; var MAX_WEIGHT = 1; function node(starting, no_of_edges) { return { "starting": starting, "no_of_edges": no_of_edges }; } function edge(dest, weight) { return { "dest": dest, "weight": weight }; } var traversal_time function BFSGraph(no_of_nodes, verbose) { if (verbose === undefined) { verbose = false; } var t1 = performance.now(); var inits = InitializeGraph(no_of_nodes); var h_graph_nodes = inits.h_graph_nodes; var h_graph_mask = inits.h_graph_mask; var h_updating_graph_mask = inits.h_updating_graph_mask; var h_graph_visited = inits.h_graph_visited; var h_cost = inits.h_cost; var h_graph_edges = inits.h_graph_edges; var t2 = performance.now(); var init_time = t2 - t1; var k = 0; var stop; t1 = performance.now(); do { stop = false; for(var tid = 0; tid < no_of_nodes; ++tid) { if (h_graph_mask[tid]) { h_graph_mask[tid] = false; for ( var i = h_graph_nodes[tid].starting ; i < (h_graph_nodes[tid].no_of_edges + h_graph_nodes[tid].starting) ; ++i) { var id = h_graph_edges[i]; if (!h_graph_visited[id]) { h_cost[id] = h_cost[tid] + 1; h_updating_graph_mask[id] = true; } } } } for (var tid = 0; tid < no_of_nodes; ++tid) { if (h_updating_graph_mask[tid]) { h_graph_mask[tid] = true; h_graph_visited[tid] = true; stop = true; h_updating_graph_mask[tid] = false; } } ++k; } while(stop); t2 = performance.now(); traversal_time = t2 - t1; var total_cost = 0; for (var i=0; i<no_of_nodes; ++i) { total_cost += h_cost[i]; } if (verbose) { for (var i = 0; i < no_of_nodes; ++i) { console.log(i + ") cost: " + h_cost[i]); } } return { status: 1, options: "BFSGraph(" + no_of_nodes + ")", time: traversal_time / 1000 }; } function InitializeGraph(no_of_nodes) { var h_graph_nodes = new Array(no_of_nodes); var h_graph_mask = new Uint8Array(no_of_nodes); var h_updating_graph_mask = new Uint8Array(no_of_nodes); var h_graph_visited = new Uint8Array(no_of_nodes); var h_cost = new Uint32Array(no_of_nodes); var source = 0; var graph = new Array(no_of_nodes); for (var i = 0; i < no_of_nodes; ++i) { graph[i] = []; } for (var i = 0; i < no_of_nodes; ++i) { var no_of_edges = Math.abs(Math.commonRandom() % ( MAX_INIT_EDGES - MIN_EDGES + 1 )) + MIN_EDGES; for (var j = 0; j < no_of_edges; ++j) { var node_id = Math.abs(Math.commonRandom() % no_of_nodes); var weight = Math.abs(Math.commonRandom() % ( MAX_WEIGHT - MIN_WEIGHT + 1 )) + MIN_WEIGHT; graph[i].push(edge(node_id, weight)); graph[node_id].push(edge(i, weight)); } } var total_edges = 0; for (var i = 0; i < no_of_nodes; ++i) { var no_of_edges = graph[i].length; h_graph_nodes[i] = node(total_edges, no_of_edges); h_graph_mask[i] = false; h_updating_graph_mask[i] = false; h_graph_visited[i] = false; total_edges += no_of_edges; } h_graph_mask[source] = true; h_graph_visited[source] = true; var h_graph_edges = new Array(total_edges); var k = 0; for (var i = 0; i < no_of_nodes; ++i) { for (var j = 0; j < graph[i].length; ++j) { h_graph_edges[k] = graph[i][j].dest; ++k; } } for (var i = 0; i < no_of_nodes; ++i) { h_cost[i] = -1; } h_cost[source] = 0; return { h_graph_nodes: h_graph_nodes, h_graph_mask: h_graph_mask, h_updating_graph_mask: h_updating_graph_mask, h_graph_visited: h_graph_visited, h_cost: h_cost, h_graph_edges: h_graph_edges } } var total1, total2; total1 = performance.now() BFSGraph(300000) total2 = performance.now() print(`${traversal_time / 1000}\t${(total2 - total1) / 1000}`)
build/bin/jerry testcase.js
It outputs the time of performing BFS. Then it seems stuck on running garbage collection.
It should exit the runtime successfully after output the time.
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Jerryscript may stuck on running garbage collecton in my test case.
JerryScript revision
release v3.0.0
Build platform
Ubuntu 22.04.4 LTS (Linux 6.8.0-40-generic x86_64)
Build steps
Test case
Execution platform
Ubuntu 22.04.4 LTS (Linux 6.8.0-40-generic x86_64)
Execution steps
Output
It outputs the time of performing BFS. Then it seems stuck on running garbage collection.
Expected behavior
It should exit the runtime successfully after output the time.
The text was updated successfully, but these errors were encountered: