|
|
@@ -1,102 +0,0 @@
|
|
|
-/* eslint-disable
|
|
|
- standard/no-callback-literal,
|
|
|
-*/
|
|
|
-// TODO: This file was created by bulk-decaffeinate.
|
|
|
-// Fix any style issues and re-enable lint.
|
|
|
-/*
|
|
|
- * decaffeinate suggestions:
|
|
|
- * DS102: Remove unnecessary code created because of implicit returns
|
|
|
- * DS207: Consider shorter variations of null checks
|
|
|
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
|
|
- */
|
|
|
-const request = require("request");
|
|
|
-const Settings = require("settings-sharelatex");
|
|
|
-const async = require("async");
|
|
|
-const fs = require("fs");
|
|
|
-const _ = require("underscore");
|
|
|
-const concurentCompiles = 5;
|
|
|
-const totalCompiles = 50;
|
|
|
-
|
|
|
-const buildUrl = path => `http://${Settings.internal.clsi.host}:${Settings.internal.clsi.port}/${path}`;
|
|
|
-
|
|
|
-const mainTexContent = fs.readFileSync("./bulk.tex", "utf-8");
|
|
|
-
|
|
|
-const compileTimes = [];
|
|
|
-let failedCount = 0;
|
|
|
-
|
|
|
-const getAverageCompileTime = function() {
|
|
|
- const totalTime = _.reduce(compileTimes, (sum, time)=> sum + time
|
|
|
- , 0);
|
|
|
- return totalTime / compileTimes.length;
|
|
|
-};
|
|
|
-
|
|
|
-const makeRequest = function(compileNumber, callback){
|
|
|
- let bulkBodyCount = 7;
|
|
|
- let bodyContent = "";
|
|
|
- while (--bulkBodyCount) {
|
|
|
- bodyContent = (bodyContent+=mainTexContent);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- const startTime = new Date();
|
|
|
- return request.post({
|
|
|
- url: buildUrl(`project/loadcompile-${compileNumber}/compile`),
|
|
|
- json: {
|
|
|
- compile: {
|
|
|
- resources: [{
|
|
|
- path: "main.tex",
|
|
|
- content: `\
|
|
|
-\\documentclass{article}
|
|
|
-\\begin{document}
|
|
|
-${bodyContent}
|
|
|
-\\end{document}\
|
|
|
-`
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- }, (err, response, body) => {
|
|
|
- if (response.statusCode !== 200) {
|
|
|
- failedCount++;
|
|
|
- return callback(`compile ${compileNumber} failed`);
|
|
|
- }
|
|
|
- if (err != null) {
|
|
|
- failedCount++;
|
|
|
- return callback("failed");
|
|
|
- }
|
|
|
- const totalTime = new Date() - startTime;
|
|
|
- console.log(totalTime+"ms");
|
|
|
- compileTimes.push(totalTime);
|
|
|
- return callback(err);
|
|
|
- });
|
|
|
-};
|
|
|
-
|
|
|
-
|
|
|
-const jobs = _.map(__range__(1, totalCompiles, true), i=>
|
|
|
- cb=> makeRequest(i, cb)
|
|
|
-);
|
|
|
-
|
|
|
-const startTime = new Date();
|
|
|
-async.parallelLimit(jobs, concurentCompiles, (err) => {
|
|
|
- if (err != null) {
|
|
|
- console.error(err);
|
|
|
- }
|
|
|
- console.log(`total time taken = ${(new Date() - startTime)/1000}s`);
|
|
|
- console.log(`total compiles = ${totalCompiles}`);
|
|
|
- console.log(`concurent compiles = ${concurentCompiles}`);
|
|
|
- console.log(`average time = ${getAverageCompileTime()/1000}s`);
|
|
|
- console.log(`max time = ${_.max(compileTimes)/1000}s`);
|
|
|
- console.log(`min time = ${_.min(compileTimes)/1000}s`);
|
|
|
- return console.log(`total failures = ${failedCount}`);
|
|
|
-});
|
|
|
-
|
|
|
-
|
|
|
-function __range__(left, right, inclusive) {
|
|
|
- const range = [];
|
|
|
- const ascending = left < right;
|
|
|
- const end = !inclusive ? right : ascending ? right + 1 : right - 1;
|
|
|
- for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {
|
|
|
- range.push(i);
|
|
|
- }
|
|
|
- return range;
|
|
|
-}
|