Tweaking memory stats and trying to figure out why startup got so much slower.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3828 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
Cory McWilliams 2022-02-06 03:28:29 +00:00
parent fbb61581c6
commit 6b20d69976
3 changed files with 10 additions and 10 deletions

View File

@ -33,7 +33,7 @@ function following(db, id) {
} }
f.sequence = row.sequence; f.sequence = row.sequence;
}); });
f.users = Array.from(f.users); f.users = Array.from(f.users).sort();
var j = JSON.stringify(f); var j = JSON.stringify(f);
if (o != j) { if (o != j) {
db.set(id + ":following", j); db.set(id + ":following", j);
@ -55,11 +55,7 @@ function followingDeep(db, seed_ids, depth) {
function get_latest_sequence_for_author(author) { function get_latest_sequence_for_author(author) {
var sequence = 0; var sequence = 0;
ssb.sqlStream( ssb.sqlStream(
'SELECT MIN(a.sequence) FROM messages a LEFT OUTER JOIN messages b ON a.author = b.author AND a.sequence + 1 = b.sequence WHERE a.author = ?1 AND b.content IS NULL', 'SELECT MAX(sequence) AS sequence FROM messages WHERE author = ?1',
// TODO: Should we never have allowed inserting if we couldn't
// validate previous? The query above helps us fill in gaps in
// feeds.
//'SELECT MAX(sequence) AS sequence FROM messages WHERE author = ?1',
[author], [author],
function(row) { function(row) {
if (row.sequence) { if (row.sequence) {
@ -212,7 +208,8 @@ function ebtReplicateSendClock(request, have) {
var ids = followingDeep(g_database, [me], 2).concat([request.connection.id]); var ids = followingDeep(g_database, [me], 2).concat([request.connection.id]);
if (!Object.keys(last_sent).length) { if (!Object.keys(last_sent).length) {
for (let id of ids) { for (let id of ids) {
message[id] = get_latest_sequence_for_author(id); var sequence = get_latest_sequence_for_author(id);
message[id] = sequence ? sequence : -1;
} }
} }
for (let id of Object.keys(have)) { for (let id of Object.keys(have)) {

View File

@ -1004,7 +1004,9 @@ static void _tf_ssb_connection_rpc_recv(tf_ssb_connection_t* connection, uint8_t
connection->ssb->rpc_in++; connection->ssb->rpc_in++;
if (flags & k_ssb_rpc_flag_json) if (flags & k_ssb_rpc_flag_json)
{ {
printf("RPC RECV flags=%x RN=%d: %.*s\n", flags, request_number, (int)size, message); char id[k_id_base64_len] = "";
tf_ssb_id_bin_to_str(id, sizeof(id), connection->serverpub);
printf("RPC RECV from %s flags=%x RN=%d: %.*s\n", id, flags, request_number, (int)size, message);
JSContext* context = connection->ssb->context; JSContext* context = connection->ssb->context;
JSValue val = JS_ParseJSON(context, (const char*)message, size, NULL); JSValue val = JS_ParseJSON(context, (const char*)message, size, NULL);

View File

@ -725,13 +725,14 @@ static JSValue _tf_task_getStats(JSContext* context, JSValueConst this_val, int
JS_SetPropertyStr(context, result, "idle_percent", JS_NewFloat64(context, task->idle_percent)); JS_SetPropertyStr(context, result, "idle_percent", JS_NewFloat64(context, task->idle_percent));
uint64_t total_memory = uv_get_total_memory();
size_t rss; size_t rss;
if (uv_resident_set_memory(&rss) == 0) if (uv_resident_set_memory(&rss) == 0)
{ {
JS_SetPropertyStr(context, result, "rss", JS_NewInt64(context, rss)); JS_SetPropertyStr(context, result, "memory_percent", JS_NewFloat64(context, 100.0f * rss / total_memory));
} }
JS_SetPropertyStr(context, result, "sqlite3_mem_used", JS_NewInt64(context, sqlite3_memory_used())); JS_SetPropertyStr(context, result, "sqlite3_memory_percent", JS_NewFloat64(context, 100.0f * sqlite3_memory_used() / total_memory));
if (task->_ssb) if (task->_ssb)
{ {