Using Print From Gio.DBus.session.call , The function I am using to make dbus calls from gjs is:
#!/usr/bin/env gjs
const { GLib, Gio } = imports.gi;
const connection = Gio.DBus.session;
const loop = new GLib.MainLoop(null, false);
const sourceId = GLib.timeout_add_seconds(
GLib.PRIORITY_DEFAULT,
1,
() => {
connection.call(
'org.gnome.Shell',
'/org/gnome/Shell/Extensions/GnomeUtilsWorkspaces',
'org.gnome.Shell.Extensions.GnomeUtilsWorkspaces',
'GetWorkspaces',
null,
null,
Gio.DBusCallFlags.NONE,
-1,
null,
(connection, res) => {
try {
const reply = connection.call_finish(res);
const [string] = reply.recursiveUnpack();
print(string);
} catch (e) {
if (e instanceof Gio.DBusError)
Gio.DBusError.strip_remote_error(e);
logError(e);
} finally {
// so it definitely quits
loop.quit();
}
}
)
}
);
loop.run();
However, this is significantly slower than the dbus-send command.
$ time dbus-send --print-reply=literal --session --dest=org.gnome.Shell /org/gnome/Shell/Extensions/GnomeUtilsWorkspaces org.gnome.Shell.Extensions.GnomeUtilsWorkspaces.GetWorkspaces
{"workspace_names":["Nemo","Firefox","Codium","Terminals","Books","Notes"],"number_of_workspaces":6,"current_workspace":"Nemo","all_windows_of_workspaces":{"Nemo":[3694756314,3694756035,3694756034,3694756353,3694756364],"Firefox":[3694756034],"Codium":[3694756034],"Terminals":[3694756034],"Books":[3694756034],"Notes":[3694756034]},"all_normal_windows_of_workspaces":{"Nemo":[3694756314,3694756035,3694756353,3694756364],"Firefox":[],"Codium":[],"Terminals":[],"Books":[],"Notes":[]}}
________________________________________________________
Executed in 4.17 millis fish external
usr time 2.82 millis 249.00 micros 2.57 millis
sys time 0.09 millis 93.00 micros 0.00 millis
…ian-i5/home/ismail/Desktop(0(1)1-fish(1))
$ time ./dbus_gjs
{"workspace_names":["Nemo","Firefox","Codium","Terminals","Books","Notes"],"number_of_workspaces":6,"current_workspace":"Nemo","all_windows_of_workspaces":{"Nemo":[3694756314,3694756035,3694756034,3694756353,3694756364],"Firefox":[3694756034],"Codium":[3694756034],"Terminals":[3694756034],"Books":[3694756034],"Notes":[3694756034]},"all_normal_windows_of_workspaces":{"Nemo":[3694756314,3694756035,3694756353,3694756364],"Firefox":[],"Codium":[],"Terminals":[],"Books":[],"Notes":[]}}
________________________________________________________
Executed in 1.09 secs fish external
usr time 48.35 millis 718.00 micros 47.63 millis
sys time 8.91 millis 255.00 micros 8.66 millis
4ms vs 1sec.
How can i increase the performance of this code?