Add performance logging to index.ts

This commit is contained in:
Luke Hagar
2024-03-07 12:54:32 -06:00
parent 29c3439cd0
commit 51ac3a07ef

View File

@@ -261,6 +261,7 @@ const NOT_LANGUAGES_OBJ = Object.fromEntries(
);
try {
const setup1 = performance.now();
const token = process.env["GITHUB_TOKEN"];
if (!token) core.error("GITHUB_TOKEN is not present");
@@ -292,7 +293,14 @@ try {
const fetchedAt = Date.now();
const setup2 = performance.now();
console.log(`Setup time: ${setup2 - setup1}ms`);
const main1 = performance.now();
const userDetails = await octokit.rest.users.getAuthenticated();
const username = userDetails.data.login;
const [userData, repoData, totalCommits, contributionsCollection] =
await Promise.all([
@@ -302,6 +310,10 @@ try {
getContributionCollection(octokit, userDetails.data.created_at),
]);
const main2 = performance.now();
console.log(`Main time: ${main2 - main1}ms`);
const viewCountPromises = [];
let starCount = 0;
let forkCount = 0;
@@ -310,6 +322,9 @@ try {
const repos = repoData.user.repositories.nodes;
const promisesCreate1 = performance.now();
const promisesResolve1 = performance.now();
for (const repo of repos) {
let repoOwner, repoName;
@@ -331,8 +346,20 @@ try {
}
}
const promisesCreate2 = performance.now();
console.log(`Promises create time: ${promisesCreate2 - promisesCreate1}ms`);
const repoContribStatsResps = await Promise.all(contribStatsPromises);
const promisesResolve2 = performance.now();
console.log(
`Promises resolve time: ${promisesResolve2 - promisesResolve1}ms`
);
const parseRepoPromises1 = performance.now();
for (const resp of repoContribStatsResps) {
if (!resp) {
continue;
@@ -355,6 +382,14 @@ try {
contributorStats.push(...repoContribStats.weeks);
}
const parseRepoPromises2 = performance.now();
console.log(
`Parse repo promises time: ${parseRepoPromises2 - parseRepoPromises1}ms`
);
const parseLines1 = performance.now();
let linesOfCodeChanged = 0;
let addedLines = 0;
let deletedLines = 0;
@@ -378,6 +413,12 @@ try {
linesOfCodeChanged += (week.a || 0) + (week.d || 0) + (week.c || 0);
}
const parseLines2 = performance.now();
console.log(`Parse lines time: ${parseLines2 - parseLines1}ms`);
const parseViews1 = performance.now();
const viewCounts = await Promise.all(viewCountPromises);
let repoViews = 0;
@@ -385,6 +426,12 @@ try {
repoViews += viewCount.data.count;
}
const parseViews2 = performance.now();
console.log(`Parse views time: ${parseViews2 - parseViews1}ms`);
const parseLang1 = performance.now();
const topLanguages: Language[] = [];
let codeByteTotal = 0;
@@ -412,6 +459,10 @@ try {
}
}
const parseLang2 = performance.now();
console.log(`Parse languages time: ${parseLang2 - parseLang1}ms`);
const tableData = [
["Name", userDetails.data.name || ""],
["Username", username],
@@ -443,6 +494,7 @@ try {
JSON.stringify(
{
name: userDetails.data.name || "",
avatarUrl: userDetails.data.avatar_url,
username,
repoViews,
linesOfCodeChanged,