Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unique_ptr+.c++
- --cut--
- #include <iostream>
- #include <memory> // для std::unique_ptr
- #include "Item.h"
- int main()
- {
- for (int i = 0; i < 100000000; ) {
- std::unique_ptr<Item> item(new Item(i));
- i++;
- }
- return 0;
- }
- --cut--
- ================================================================================
- unique_ptr-.c++
- --cut--
- #include <iostream>
- #include <memory> // для std::unique_ptr
- #include "Item.h"
- int main()
- {
- for (int i = 0; i < 100000000; ) {
- Item* item = new Item(i);
- i++;
- delete item;
- }
- return 0;
- }
- --cut--
- ================================================================================
- Item.h
- --cut--
- #include <unistd.h>
- class Item
- {
- public:
- Item(int i):i(i)
- { write(STDOUT_FILENO, ">", 1); }
- ~Item()
- { write(STDOUT_FILENO, "<", 1); i--; }
- private:
- int i;
- };
- --cut--
- ================================================================================
- Makefile
- --cut--
- all: unique_ptr+ unique_ptr-
- unique_ptr+: unique_ptr+.c++
- c++ $^ -o $@ -O3
- unique_ptr-: unique_ptr-.c++
- c++ $^ -o $@ -O3
- --cut--
- ================================================================================
- ================================================================================
- ================================================================================
- два запуска "+"
- $ sudo perf stat ./unique_ptr+ >/dev/null
- Performance counter stats for './unique_ptr+':
- 17 986,22 msec task-clock # 1,000 CPUs utilized
- 60 context-switches # 0,003 K/sec
- 0 cpu-migrations # 0,000 K/sec
- 122 page-faults # 0,007 K/sec
- 63 842 579 962 cycles # 3,550 GHz
- 133 523 204 873 instructions # 2,09 insn per cycle
- 26 203 958 590 branches # 1456,891 M/sec
- 72 456 branch-misses # 0,00% of all branches
- 17,987337609 seconds time elapsed
- 5,579484000 seconds user
- 12,406853000 seconds sys
- $ sudo perf stat ./unique_ptr+ >/dev/null
- Performance counter stats for './unique_ptr+':
- 17 917,53 msec task-clock # 1,000 CPUs utilized
- 124 context-switches # 0,007 K/sec
- 2 cpu-migrations # 0,000 K/sec
- 122 page-faults # 0,007 K/sec
- 63 179 246 976 cycles # 3,526 GHz
- 133 524 156 215 instructions # 2,11 insn per cycle
- 26 204 153 897 branches # 1462,487 M/sec
- 86 269 branch-misses # 0,00% of all branches
- 17,920061593 seconds time elapsed
- 5,931150000 seconds user
- 11,986282000 seconds sys
- ================================================================================
- ================================================================================
- ================================================================================
- два запуска "-"
- $ sudo perf stat ./unique_ptr- >/dev/null
- Performance counter stats for './unique_ptr-':
- 17 844,46 msec task-clock # 1,000 CPUs utilized
- 50 context-switches # 0,003 K/sec
- 0 cpu-migrations # 0,000 K/sec
- 123 page-faults # 0,007 K/sec
- 63 310 787 822 cycles # 3,548 GHz
- 133 523 339 391 instructions # 2,11 insn per cycle
- 26 203 981 684 branches # 1468,466 M/sec
- 74 410 branch-misses # 0,00% of all branches
- 17,845494383 seconds time elapsed
- 5,940188000 seconds user
- 11,904377000 seconds sys
- $ sudo perf stat ./unique_ptr- >/dev/null
- Performance counter stats for './unique_ptr-':
- 18 921,22 msec task-clock # 1,000 CPUs utilized
- 57 context-switches # 0,003 K/sec
- 1 cpu-migrations # 0,000 K/sec
- 123 page-faults # 0,007 K/sec
- 65 560 699 792 cycles # 3,465 GHz
- 133 528 879 861 instructions # 2,04 insn per cycle
- 26 204 948 357 branches # 1384,950 M/sec
- 151 713 branch-misses # 0,00% of all branches
- 18,922880390 seconds time elapsed
- 6,348399000 seconds user
- 12,572791000 seconds sys
- ================================================================================
- все.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement