Browse Source

fix memory leaks

master
RinRi 1 year ago
parent
commit
e1d72ce62c
7 changed files with 29 additions and 23 deletions
  1. BIN
      week05/ex3
  2. +5
    -1
      week05/ex3.c
  3. +10
    -10
      week05/ex3.txt
  4. BIN
      week05/ex4
  5. +1
    -0
      week05/ex4.c
  6. +3
    -2
      week05/ex4.explanation.txt
  7. +10
    -10
      week05/ex4.txt

BIN
week05/ex3 View File


+ 5
- 1
week05/ex3.c View File

@@ -84,8 +84,12 @@ int main(int argc, char *argv[]) {
TODO
Free the allocated memory.
*/
for (int i = 0; i < n_threads; i++)
for (int i = 0; i < n_threads; ++i) {
free(results[i]);
}
free(threads);
free(results);
free(requests);

printf("%d\n", total_result);



+ 10
- 10
week05/ex3.txt View File

@@ -1,15 +1,15 @@
time ./ex3 10000000 1
10.82user 0.00system 0:10.88elapsed 99%CPU (0avgtext+0avgdata 1576maxresident)k
0inputs+0outputs (0major+75minor)pagefaults 0swaps
10.29user 0.01system 0:10.30elapsed 99%CPU (0avgtext+0avgdata 1648maxresident)k
0inputs+0outputs (0major+76minor)pagefaults 0swaps
time ./ex3 10000000 2
11.17user 0.05system 0:07.02elapsed 159%CPU (0avgtext+0avgdata 1640maxresident)k
0inputs+0outputs (0major+78minor)pagefaults 0swaps
10.69user 0.00system 0:06.72elapsed 159%CPU (0avgtext+0avgdata 1692maxresident)k
0inputs+0outputs (0major+79minor)pagefaults 0swaps
time ./ex3 10000000 4
11.66user 0.16system 0:03.95elapsed 298%CPU (0avgtext+0avgdata 3056maxresident)k
0inputs+0outputs (0major+86minor)pagefaults 0swaps
11.63user 0.01system 0:03.84elapsed 302%CPU (0avgtext+0avgdata 3128maxresident)k
0inputs+0outputs (0major+84minor)pagefaults 0swaps
time ./ex3 10000000 10
20.34user 0.33system 0:03.04elapsed 679%CPU (0avgtext+0avgdata 3528maxresident)k
0inputs+0outputs (0major+105minor)pagefaults 0swaps
20.63user 0.00system 0:03.13elapsed 657%CPU (0avgtext+0avgdata 5120maxresident)k
0inputs+0outputs (0major+102minor)pagefaults 0swaps
time ./ex3 10000000 100
22.07user 0.15system 0:02.98elapsed 744%CPU (0avgtext+0avgdata 5744maxresident)k
0inputs+0outputs (0major+348minor)pagefaults 0swaps
22.58user 0.00system 0:02.96elapsed 761%CPU (0avgtext+0avgdata 5916maxresident)k
0inputs+0outputs (0major+345minor)pagefaults 0swaps

BIN
week05/ex4 View File


+ 1
- 0
week05/ex4.c View File

@@ -79,6 +79,7 @@ int main(int argc, char *argv[]) {
Free the allocated memory.
*/
pthread_mutex_destroy(&global_lock);
free(threads);

printf("%d\n", primes_found_so_far);
exit(EXIT_SUCCESS);


+ 3
- 2
week05/ex4.explanation.txt View File

@@ -1,7 +1,8 @@
The execution time is almost the same as ex3.
But, in this case, after increasing number of threads
4->10 and 10->100, the execution time is
insignificantly increasing. It is probably caused by
4->10 and 10->100, the execution time sometimes
insignificantly increased (it happened before
several times). It is probably caused by
mutexes, since they don't allow multiple threads run
the locked code at the same time. The number of
threads is way higher than the number of physical


+ 10
- 10
week05/ex4.txt View File

@@ -1,15 +1,15 @@
time ./ex4 10000000 1
10.27user 0.00system 0:10.36elapsed 99%CPU (0avgtext+0avgdata 1720maxresident)k
0inputs+0outputs (0major+78minor)pagefaults 0swaps
time ./ex4 10000000 2
10.65user 0.02system 0:05.38elapsed 198%CPU (0avgtext+0avgdata 1588maxresident)k
10.31user 0.00system 0:10.31elapsed 100%CPU (0avgtext+0avgdata 1636maxresident)k
0inputs+0outputs (0major+76minor)pagefaults 0swaps
time ./ex4 10000000 2
10.71user 0.02system 0:05.37elapsed 199%CPU (0avgtext+0avgdata 1556maxresident)k
0inputs+0outputs (0major+77minor)pagefaults 0swaps
time ./ex4 10000000 4
12.35user 0.14system 0:03.15elapsed 396%CPU (0avgtext+0avgdata 1548maxresident)k
0inputs+0outputs (0major+80minor)pagefaults 0swaps
12.26user 0.14system 0:03.11elapsed 398%CPU (0avgtext+0avgdata 1540maxresident)k
0inputs+0outputs (0major+81minor)pagefaults 0swaps
time ./ex4 10000000 10
20.43user 0.81system 0:03.25elapsed 652%CPU (0avgtext+0avgdata 1672maxresident)k
0inputs+0outputs (0major+98minor)pagefaults 0swaps
22.42user 0.52system 0:03.01elapsed 762%CPU (0avgtext+0avgdata 1572maxresident)k
0inputs+0outputs (0major+93minor)pagefaults 0swaps
time ./ex4 10000000 100
20.05user 0.80system 0:03.28elapsed 634%CPU (0avgtext+0avgdata 2116maxresident)k
0inputs+0outputs (0major+281minor)pagefaults 0swaps
22.42user 0.60system 0:02.99elapsed 769%CPU (0avgtext+0avgdata 5840maxresident)k
0inputs+0outputs (0major+280minor)pagefaults 0swaps

Loading…
Cancel
Save