суммарное число задач, и время пакетов при экспорте

This commit is contained in:
2023-12-09 22:47:15 +03:00
parent dbd8d416f9
commit fce85afc71
5 changed files with 77 additions and 46 deletions

3
.idea/workspace.xml generated
View File

@@ -8,6 +8,9 @@
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Utils/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />

View File

@@ -1095,10 +1095,10 @@ public class Utils {
state = TaskState.WrongTestFormat;
} else if (errors > 0) {
state = TaskState.DoneWithErrors;
}else {
} else {
state = TaskState.Done;
}
return new Pair<>( state, (int) ((((double) complete) / total) * 100));
return new Pair<>(state, (int) ((((double) complete) / total) * 100));
}
public static Pair<TaskState, Integer> analyzePerformance(List<String> lines) {
StringTemplate stringTemplate = new StringTemplate("Verification =", "");
@@ -1144,5 +1144,15 @@ public class Utils {
public static boolean isVersion(File directory) throws Exception {
return new File(directory, Constants.data).exists();
}
public static String printSplittedDateInterval(long milliseconds) {
//--
long seconds = milliseconds / 1000;
long hours = seconds / 3600;
seconds = seconds - hours * 3600;
long minutes = (seconds) / 60;
seconds = seconds - minutes * 60;
//--
return hours + " часов, " + minutes + " минут, " + seconds + " секунд";
}
}

View File

@@ -82,6 +82,8 @@ public enum ServerCode {
//--
PublishObject,
PublishObjects,
UpdateTestTasks
UpdateTestTasks,
GetPackagesInfo
// PublishTestProject
}

View File

@@ -354,6 +354,12 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
UpdateTestTasks();
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case GetPackagesInfo:
Print("Получить данные по пакетам");
SetCurrentAccountDB(request.arg);
response = new ServerExchangeUnit_2021(ServerCode.OK);
GetPackagesInfo();
break;
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
@@ -499,6 +505,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
}
}
//-------------------------------------------------------------------------------------->>>
@Override
protected Database getDefaultDatabase() {
@@ -626,4 +633,8 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
}
}
//---------------------------------------------------------------------------------------------->>>
void GetPackagesInfo() throws Exception{
Vector<Long> keys = (Vector<Long>) request.object;
}
}

View File

@@ -1,8 +1,6 @@
package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Current;
import Common.Global;
import Common.UI.Themes.FreeFortranSPFTokenMaker;
import Common.UI.UI;
import Common.Utils.Files.VDirectoryChooser;
import Common.Utils.Index;
@@ -36,6 +34,9 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
Workbook book = null;
Sheet sheet = null;
//--
int total_tasks_count = 0;
long total_time = 0;
//--
LinkedHashMap<Long, Vector<TestRunTask>> packages_tasks = null;
//--
@Override
@@ -89,18 +90,19 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
return true;
}
//---
static String getPackageInfo(TasksPackage object) {
String getPackageInfo(TasksPackage object) {
Vector<String> lines = new Vector<>();
lines.add("задач " + object.runTasksCount);
lines.add("машина " + object.machine_address + ":" + object.machine_port);
lines.add("ядер " + object.kernels);
lines.add("DVM-система " + object.dvm_version);
long seconds = (object.ChangeDate - object.StartDate) / 1000;
long hours = seconds / 3600;
seconds = seconds - hours * 3600;
long minutes = (seconds) / 60;
seconds = seconds - minutes * 60;
lines.add("время выполнения " + hours + " часов, " + minutes + " минут, " + seconds + " секунд");
//--
total_tasks_count+=object.runTasksCount;
//--
long milliseconds = object.ChangeDate - object.StartDate;
total_time+= milliseconds;
//--
lines.add("время выполнения " + Utils.printSplittedDateInterval(milliseconds));
return String.join("; ", lines);
}
//---
@@ -109,12 +111,12 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
String cell_text = value.toString();
Cell cell = row.createCell(0);
cell.setCellValue(cell_text);
cell.setCellStyle(styles.get(0));
cell.setCellStyle(styles.get(1));
//https://translated.turbopages.org/proxy_u/en-ru.ru.f85b6508-657377d3-df23bc2d-74722d776562/https/stackoverflow.com/questions/23533381/creating-the-border-for-the-merged-cells-in-poi
sheet.addMergedRegion(new CellRangeAddress(row_num, row_num, 0, max_columns - 1));
for (int i = 1; i < max_columns; ++i) {
Cell blankCell = row.createCell(i);
blankCell.setCellStyle(styles.get(0));
blankCell.setCellStyle(styles.get(1));
}
}
protected void addHeaderRow(int row_num, Object... values) {
@@ -157,7 +159,6 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
task.progress //15
);
*/
case 4:
case 5:
TaskState state = (TaskState) value;
@@ -191,15 +192,15 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
case 6:
case 7:
case 8:
style_index=7;
cell.setCellValue((int)value);
style_index = 7;
cell.setCellValue((int) value);
break;
case 9:
style_index = 7;
cell.setCellValue(value.toString());
break;
case 15:
cell.setCellValue((int)value);
cell.setCellValue((int) value);
break;
case 12:
case 13:
@@ -246,8 +247,8 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
}
return res;
}
String formatMatrix(String matrix){
return Utils.DQuotes(matrix.trim());
String formatMatrix(String matrix) {
return Utils.DQuotes(matrix.trim());
}
void createStyles() {
styles = new Vector<>();
@@ -299,29 +300,7 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
styles.add(style);
}
}
void exportPackage(TasksPackage tasksPackage, Index offset) {
addInfoRow(offset.getValue(), getPackageInfo(tasksPackage));
offset.Inc();
addHeaderRow(offset.getValue(),
"Группа",
"Тест",
"Язык",
"Флаги",
"Компиляция",
"Запуск",
"NUM_THREADS",
"NUM_CUDAS",
"TOTAL_THREADS",
"Матрица",
"Окружение",
"usr.par",
"Время компиляции (с)",
"Время запуска (с)",
"Чистое время (с)",
"Прогресс (%)");
//--
offset.Inc();
//--
void exportPackageTasks(TasksPackage tasksPackage, Index offset) {
Vector<TestRunTask> tasks = packages_tasks.get(tasksPackage.id);
for (TestRunTask task : tasks) {
ShowMessage2(task.test_description);
@@ -331,7 +310,7 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
Integer NUM_CUDAS = extractIntegerEnvironmentValue(task.environments, "DVMH_NUM_CUDAS");
//--
int num_threads = (NUM_THREADS != null) ? NUM_THREADS : 1;
int num_cudas = (NUM_CUDAS != null) ? NUM_CUDAS :0;
int num_cudas = (NUM_CUDAS != null) ? NUM_CUDAS : 0;
int total_threads = num_threads * Utils.getMatrixProcessors(task.matrix);
//--
addTaskRow(offset.getValue(),
@@ -367,8 +346,34 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
//--
Index offset = new Index();
for (TasksPackage tasksPackage : target) {
exportPackage(tasksPackage, offset);
// UI.Info(String.valueOf(tasksPackage.id));
addInfoRow(offset.getValue(), getPackageInfo(tasksPackage));
offset.Inc();
}
if (target.size()>1){
addInfoRow(offset.getValue(), "всего задач "+total_tasks_count+"; общее время выполнения "+Utils.printSplittedDateInterval(total_time));
offset.Inc();
}
addHeaderRow(offset.getValue(),
"Группа",
"Тест",
"Язык",
"Флаги",
"Компиляция",
"Запуск",
"NUM_THREADS",
"NUM_CUDAS",
"TOTAL_THREADS",
"Матрица",
"Окружение",
"usr.par",
"Время компиляции (с)",
"Время запуска (с)",
"Чистое время (с)",
"Прогресс (%)");
//--
offset.Inc();
for (TasksPackage tasksPackage : target) {
exportPackageTasks(tasksPackage, offset);
}
//--
for (int i = 0; i < max_columns; ++i)