add timing data for providers
This commit is contained in:
parent
069c746b58
commit
93fc0a1945
1 changed files with 16 additions and 3 deletions
19
src/main.zig
19
src/main.zig
|
@ -62,6 +62,7 @@ const ProviderResult = struct {
|
||||||
provider_name: []const u8,
|
provider_name: []const u8,
|
||||||
releases: ArrayList(Release),
|
releases: ArrayList(Release),
|
||||||
error_msg: ?[]const u8 = null,
|
error_msg: ?[]const u8 = null,
|
||||||
|
duration_ms: u64 = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
const ThreadContext = struct {
|
const ThreadContext = struct {
|
||||||
|
@ -167,7 +168,7 @@ pub fn main() !u8 {
|
||||||
var has_errors = false;
|
var has_errors = false;
|
||||||
for (provider_results) |result| {
|
for (provider_results) |result| {
|
||||||
if (result.error_msg) |error_msg| {
|
if (result.error_msg) |error_msg| {
|
||||||
printError("✗ {s}: {s}\n", .{ result.provider_name, error_msg });
|
printError("✗ {s}: {s} (in {d}ms)\n", .{ result.provider_name, error_msg, result.duration_ms });
|
||||||
has_errors = true;
|
has_errors = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -181,7 +182,6 @@ pub fn main() !u8 {
|
||||||
// Combine all new releases from threaded providers
|
// Combine all new releases from threaded providers
|
||||||
for (provider_results) |result| {
|
for (provider_results) |result| {
|
||||||
try new_releases.appendSlice(result.releases.items);
|
try new_releases.appendSlice(result.releases.items);
|
||||||
printInfo("Found {} new releases from {s}\n", .{ result.releases.items.len, result.provider_name });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Combine all releases (existing and new)
|
// Combine all releases (existing and new)
|
||||||
|
@ -399,6 +399,9 @@ fn fetchProviderReleases(context: *const ThreadContext) void {
|
||||||
defer if (!std.mem.eql(u8, since_str, "unknown")) allocator.free(since_str);
|
defer if (!std.mem.eql(u8, since_str, "unknown")) allocator.free(since_str);
|
||||||
printInfo("Fetching releases from {s} (since: {s})...\n", .{ provider.getName(), since_str });
|
printInfo("Fetching releases from {s} (since: {s})...\n", .{ provider.getName(), since_str });
|
||||||
|
|
||||||
|
// Start timing
|
||||||
|
const start_time = std.time.milliTimestamp();
|
||||||
|
|
||||||
if (provider.fetchReleases(allocator)) |all_releases| {
|
if (provider.fetchReleases(allocator)) |all_releases| {
|
||||||
defer {
|
defer {
|
||||||
for (all_releases.items) |release| {
|
for (all_releases.items) |release| {
|
||||||
|
@ -414,9 +417,19 @@ fn fetchProviderReleases(context: *const ThreadContext) void {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Calculate duration
|
||||||
|
const end_time = std.time.milliTimestamp();
|
||||||
|
const duration_ms: u64 = @intCast(end_time - start_time);
|
||||||
|
result.duration_ms = duration_ms;
|
||||||
|
|
||||||
result.releases = filtered;
|
result.releases = filtered;
|
||||||
printInfo("✓ {s}: Found {} new releases\n", .{ provider.getName(), filtered.items.len });
|
printInfo("✓ {s}: Found {} new releases in {d}ms\n", .{ provider.getName(), filtered.items.len, duration_ms });
|
||||||
} else |err| {
|
} else |err| {
|
||||||
|
// Calculate duration even for errors
|
||||||
|
const end_time = std.time.milliTimestamp();
|
||||||
|
const duration_ms: u64 = @intCast(end_time - start_time);
|
||||||
|
result.duration_ms = duration_ms;
|
||||||
|
|
||||||
const error_msg = std.fmt.allocPrint(allocator, "Error fetching releases: {}", .{err}) catch "Unknown fetch error";
|
const error_msg = std.fmt.allocPrint(allocator, "Error fetching releases: {}", .{err}) catch "Unknown fetch error";
|
||||||
result.error_msg = error_msg;
|
result.error_msg = error_msg;
|
||||||
// Don't print error here - it will be handled in main function
|
// Don't print error here - it will be handled in main function
|
||||||
|
|
Loading…
Add table
Reference in a new issue