From 06eeee4c0d86fa967a6d5fa34cb098a4c6c90ddd Mon Sep 17 00:00:00 2001 From: pajjilykk Date: Sat, 25 Apr 2026 07:05:28 +0700 Subject: [PATCH] some safe imports --- .gitignore | 6 +++--- 1/exporter.py | 2 ++ 1/gantt.png | Bin 52843 -> 0 bytes 1/lab1 | Bin 29784 -> 0 bytes 1/log.txt | 30 ------------------------------ 1/main.cpp | 1 - 1/processes.md | 17 ----------------- 2/Makefile | 19 ++++++++++--------- 2/{analyze_log.py => exporter.py} | 0 9 files changed, 15 insertions(+), 60 deletions(-) delete mode 100644 1/gantt.png delete mode 100755 1/lab1 delete mode 100644 1/log.txt delete mode 100644 1/processes.md rename 2/{analyze_log.py => exporter.py} (100%) diff --git a/.gitignore b/.gitignore index 7c4d6a9..4817317 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ *.xlsx -2/out -2/log* -2/lab2 +**/out +**/log* +**/lab* diff --git a/1/exporter.py b/1/exporter.py index 18a3dd9..96fecc2 100644 --- a/1/exporter.py +++ b/1/exporter.py @@ -23,6 +23,8 @@ class Proc: @property def duration(self): + if self.start is None or self.end is None: + return 0 return self.end - self.start diff --git a/1/gantt.png b/1/gantt.png deleted file mode 100644 index c56032503678920eddc2106ca3889b766c9f977c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52843 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

Jxbx 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 diff --git a/1/log.txt b/1/log.txt deleted file mode 100644 index ad8b617..0000000 --- a/1/log.txt +++ /dev/null @@ -1,30 +0,0 @@ -PROC_START pid=45686 ppid=45683 depth=0 l=0 r=19999 ts=1777075170.175506 -PROC_START pid=45687 ppid=45686 depth=1 l=0 r=9999 ts=1777075170.176607 -PROC_START pid=45688 ppid=45686 depth=1 l=10000 r=19999 ts=1777075170.176646 -PROC_START pid=45690 ppid=45688 depth=2 l=10000 r=14999 ts=1777075170.177346 -PROC_START pid=45689 ppid=45687 depth=2 l=0 r=4999 ts=1777075170.177348 -PROC_START pid=45691 ppid=45687 depth=2 l=5000 r=9999 ts=1777075170.177532 -PROC_START pid=45692 ppid=45688 depth=2 l=15000 r=19999 ts=1777075170.178014 -PROC_START pid=45693 ppid=45689 depth=3 l=0 r=2499 ts=1777075170.178106 -PROC_START pid=45695 ppid=45691 depth=3 l=5000 r=7499 ts=1777075170.178382 -PROC_START pid=45698 ppid=45691 depth=3 l=7500 r=9999 ts=1777075170.178693 -PROC_START pid=45696 ppid=45689 depth=3 l=2500 r=4999 ts=1777075170.178728 -PROC_START pid=45694 ppid=45690 depth=3 l=10000 r=12499 ts=1777075170.178801 -PROC_START pid=45699 ppid=45692 depth=3 l=15000 r=17499 ts=1777075170.178864 -PROC_END pid=45693 ppid=45689 depth=3 l=0 r=2499 ts=1777075170.180091 -PROC_START pid=45697 ppid=45690 depth=3 l=12500 r=14999 ts=1777075170.180099 -PROC_END pid=45696 ppid=45689 depth=3 l=2500 r=4999 ts=1777075170.180323 -PROC_END pid=45694 ppid=45690 depth=3 l=10000 r=12499 ts=1777075170.180342 -PROC_END pid=45699 ppid=45692 depth=3 l=15000 r=17499 ts=1777075170.180396 -PROC_END pid=45698 ppid=45691 depth=3 l=7500 r=9999 ts=1777075170.180896 -PROC_START pid=45700 ppid=45692 depth=3 l=17500 r=19999 ts=1777075170.181111 -PROC_END pid=45697 ppid=45690 depth=3 l=12500 r=14999 ts=1777075170.182005 -PROC_END pid=45689 ppid=45687 depth=2 l=0 r=4999 ts=1777075170.182180 -PROC_END pid=45700 ppid=45692 depth=3 l=17500 r=19999 ts=1777075170.182464 -PROC_END pid=45690 ppid=45688 depth=2 l=10000 r=14999 ts=1777075170.182832 -PROC_END pid=45695 ppid=45691 depth=3 l=5000 r=7499 ts=1777075170.182874 -PROC_END pid=45692 ppid=45688 depth=2 l=15000 r=19999 ts=1777075170.183226 -PROC_END pid=45691 ppid=45687 depth=2 l=5000 r=9999 ts=1777075170.183675 -PROC_END pid=45688 ppid=45686 depth=1 l=10000 r=19999 ts=1777075170.184045 -PROC_END pid=45687 ppid=45686 depth=1 l=0 r=9999 ts=1777075170.184457 -PROC_END pid=45686 ppid=45683 depth=0 l=0 r=19999 ts=1777075170.185554 diff --git a/1/main.cpp b/1/main.cpp index 15b7ba9..d66a55f 100644 --- a/1/main.cpp +++ b/1/main.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include diff --git a/1/processes.md b/1/processes.md deleted file mode 100644 index 0edc18c..0000000 --- a/1/processes.md +++ /dev/null @@ -1,17 +0,0 @@ -| PID | PPID | Start | End | Offset | Duration | -|---|---|---|---|---|---| -| 43025 | 43024 | 1777074933.591973 | 1777074933.597747 | 0.000000 | 0.005774 | -| 43026 | 43025 | 1777074933.592392 | 1777074933.595743 | 0.000419 | 0.003351 | -| 43028 | 43026 | 1777074933.592776 | 1777074933.594957 | 0.000803 | 0.002181 | -| 43032 | 43028 | 1777074933.593184 | 1777074933.594108 | 0.001211 | 0.000924 | -| 43035 | 43028 | 1777074933.593475 | 1777074933.594547 | 0.001502 | 0.001072 | -| 43030 | 43026 | 1777074933.592938 | 1777074933.595233 | 0.000965 | 0.002295 | -| 43034 | 43030 | 1777074933.593322 | 1777074933.594447 | 0.001349 | 0.001125 | -| 43037 | 43030 | 1777074933.593732 | 1777074933.594871 | 0.001759 | 0.001139 | -| 43027 | 43025 | 1777074933.592520 | 1777074933.597099 | 0.000547 | 0.004579 | -| 43029 | 43027 | 1777074933.592913 | 1777074933.595208 | 0.000940 | 0.002295 | -| 43033 | 43029 | 1777074933.593304 | 1777074933.594236 | 0.001331 | 0.000932 | -| 43036 | 43029 | 1777074933.593614 | 1777074933.594681 | 0.001641 | 0.001067 | -| 43031 | 43027 | 1777074933.593108 | 1777074933.596602 | 0.001135 | 0.003494 | -| 43038 | 43031 | 1777074933.593782 | 1777074933.594834 | 0.001809 | 0.001052 | -| 43039 | 43031 | 1777074933.595271 | 1777074933.596147 | 0.003298 | 0.000876 | diff --git a/2/Makefile b/2/Makefile index 6c24e11..3d325b3 100644 --- a/2/Makefile +++ b/2/Makefile @@ -5,6 +5,7 @@ TARGET = lab2 SRC = main.cpp PY = python3 +EXPORTER = exporter.py # ================= BUILD ================= all: $(TARGET) @@ -38,17 +39,17 @@ bench: batch_size batch_threads # ================= ANALYSIS ================= analyze_size: - $(PY) analyze_log.py log_size_5k.txt out/size/ - $(PY) analyze_log.py log_size_10k.txt out/size/ - $(PY) analyze_log.py log_size_20k.txt out/size/ - $(PY) analyze_log.py log_size_50k.txt out/size/ - $(PY) analyze_log.py log_size_100k.txt out/size/ + $(PY) $(EXPORTER) log_size_5k.txt out/size/ + $(PY) $(EXPORTER) log_size_10k.txt out/size/ + $(PY) $(EXPORTER) log_size_20k.txt out/size/ + $(PY) $(EXPORTER) log_size_50k.txt out/size/ + $(PY) $(EXPORTER) log_size_100k.txt out/size/ analyze_threads: - $(PY) analyze_log.py log_thr_0.txt out/threads/ - $(PY) analyze_log.py log_thr_2.txt out/threads/ - $(PY) analyze_log.py log_thr_4.txt out/threads/ - $(PY) analyze_log.py log_thr_8.txt out/threads/ + $(PY) $(EXPORTER) log_thr_0.txt out/threads/ + $(PY) $(EXPORTER) log_thr_2.txt out/threads/ + $(PY) $(EXPORTER) log_thr_4.txt out/threads/ + $(PY) $(EXPORTER) log_thr_8.txt out/threads/ # ================= CLEAN ================= clean: diff --git a/2/analyze_log.py b/2/exporter.py similarity index 100% rename from 2/analyze_log.py rename to 2/exporter.py