Skip to content

Instantly share code, notes, and snippets.

@charles-l
Last active January 10, 2019 03:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save charles-l/c4334ab8a9fa720807e45b9bfd547e64 to your computer and use it in GitHub Desktop.
Save charles-l/c4334ab8a9fa720807e45b9bfd547e64 to your computer and use it in GitHub Desktop.
c++ compile times
nc@gimli:/tmp/compiletimes$ make bench
cat /proc/cpuinfo | grep 'model name' | uniq
model name : AMD FX(tm)-8320 Eight-Core Processor
echo "num cores: $(cat /proc/cpuinfo | grep processor | wc -l)"
num cores: 8
make generate_empty
make[1]: Entering directory '/tmp/compiletimes'
echo "int main() {}" > main.cpp
for i in `seq 500`; do touch f$i.cpp; done
make[1]: Leaving directory '/tmp/compiletimes'
time make -j 9
make[1]: Entering directory '/tmp/compiletimes'
g++ f3.cpp f290.cpp f18.cpp f214.cpp f206.cpp f93.cpp f295.cpp f350.cpp f23.cpp f120.cpp f58.cpp f102.cpp f171.cpp f39.cpp f246.cpp f60.cpp f452.cpp f45.cpp f384.cpp f313.cpp f117.cpp f48.cpp f27.cpp f391.cpp f344.cpp f109.cpp f407.cpp f258.cpp f2.cpp f319.cpp f286.cpp f52.cpp f342.cpp f12.cpp f269.cpp f24.cpp f323.cpp f235.cpp f134.cpp f170.cpp f298.cpp f6.cpp f143.cpp f161.cpp f338.cpp f377.cpp f446.cpp f425.cpp f116.cpp f197.cpp f157.cpp f390.cpp f487.cpp f437.cpp f305.cpp f468.cpp f110.cpp f488.cpp f101.cpp f406.cpp f283.cpp f138.cpp f365.cpp f11.cpp main.cpp f347.cpp f491.cpp f356.cpp f270.cpp f194.cpp f19.cpp f61.cpp f341.cpp f456.cpp f289.cpp f400.cpp f397.cpp f464.cpp f132.cpp f163.cpp f131.cpp f473.cpp f247.cpp f113.cpp f152.cpp f379.cpp f212.cpp f334.cpp f433.cpp f381.cpp f181.cpp f127.cpp f497.cpp f354.cpp f285.cpp f293.cpp f40.cpp f220.cpp f358.cpp f266.cpp f166.cpp f461.cpp f202.cpp f453.cpp f130.cpp f346.cpp f261.cpp f77.cpp f227.cpp f103.cpp f217.cpp f409.cpp f301.cpp f255.cpp f475.cpp f376.cpp f234.cpp f327.cpp f373.cpp f294.cpp f455.cpp f352.cpp f304.cpp f349.cpp f211.cpp f145.cpp f332.cpp f299.cpp f57.cpp f122.cpp f489.cpp f13.cpp f424.cpp f260.cpp f288.cpp f16.cpp f149.cpp f337.cpp f38.cpp f242.cpp f96.cpp f154.cpp f81.cpp f80.cpp f238.cpp f67.cpp f388.cpp f118.cpp f210.cpp f98.cpp f201.cpp f172.cpp f5.cpp f492.cpp f465.cpp f49.cpp f35.cpp f277.cpp f229.cpp f28.cpp f392.cpp f111.cpp f126.cpp f408.cpp f291.cpp f441.cpp f387.cpp f55.cpp f128.cpp f180.cpp f254.cpp f88.cpp f328.cpp f200.cpp f478.cpp f121.cpp f226.cpp f112.cpp f368.cpp f105.cpp f195.cpp f78.cpp f198.cpp f7.cpp f162.cpp f353.cpp f75.cpp f460.cpp f147.cpp f496.cpp f414.cpp f440.cpp f73.cpp f466.cpp f249.cpp f59.cpp f146.cpp f265.cpp f427.cpp f471.cpp f177.cpp f432.cpp f204.cpp f362.cpp f481.cpp f322.cpp f436.cpp f4.cpp f185.cpp f174.cpp f144.cpp f248.cpp f380.cpp f366.cpp f135.cpp f435.cpp f84.cpp f124.cpp f10.cpp f196.cpp f252.cpp f216.cpp f237.cpp f153.cpp f225.cpp f148.cpp f278.cpp f449.cpp f56.cpp f279.cpp f470.cpp f318.cpp f193.cpp f74.cpp f292.cpp f482.cpp f499.cpp f76.cpp f1.cpp f155.cpp f29.cpp f280.cpp f41.cpp f97.cpp f326.cpp f221.cpp f282.cpp f208.cpp f63.cpp f34.cpp f91.cpp f485.cpp f164.cpp f325.cpp f142.cpp f.cpp f26.cpp f228.cpp f69.cpp f361.cpp f312.cpp f85.cpp f276.cpp f139.cpp f355.cpp f444.cpp f413.cpp f490.cpp f178.cpp f395.cpp f50.cpp f445.cpp f141.cpp f53.cpp f251.cpp f65.cpp f114.cpp f90.cpp f462.cpp f333.cpp f99.cpp f454.cpp f320.cpp f189.cpp f175.cpp f399.cpp f493.cpp f448.cpp f360.cpp f302.cpp f479.cpp f374.cpp f469.cpp f215.cpp f309.cpp f268.cpp f480.cpp f317.cpp f403.cpp f36.cpp f140.cpp f250.cpp f167.cpp f281.cpp f207.cpp f209.cpp f9.cpp f104.cpp f329.cpp f494.cpp f311.cpp f232.cpp f22.cpp f223.cpp f158.cpp f236.cpp f438.cpp f224.cpp f62.cpp f477.cpp f107.cpp f222.cpp f14.cpp f340.cpp f25.cpp f316.cpp f137.cpp f54.cpp f82.cpp f125.cpp f264.cpp f165.cpp f205.cpp f89.cpp f263.cpp f310.cpp f363.cpp f274.cpp f83.cpp f431.cpp f182.cpp f243.cpp f429.cpp f188.cpp f321.cpp f87.cpp f192.cpp f483.cpp f47.cpp f308.cpp f458.cpp f484.cpp f244.cpp f447.cpp f94.cpp f394.cpp f287.cpp f31.cpp f421.cpp f300.cpp f359.cpp f231.cpp f183.cpp f385.cpp f213.cpp f68.cpp f426.cpp f418.cpp f272.cpp f343.cpp f396.cpp f71.cpp f253.cpp f30.cpp f420.cpp f46.cpp f199.cpp f129.cpp f273.cpp f230.cpp f439.cpp f314.cpp f151.cpp f402.cpp f474.cpp f364.cpp f115.cpp f219.cpp f179.cpp f133.cpp f203.cpp f417.cpp f267.cpp f336.cpp f20.cpp f443.cpp f191.cpp f187.cpp f307.cpp f245.cpp f70.cpp f398.cpp f457.cpp f42.cpp f119.cpp f64.cpp f32.cpp f411.cpp f335.cpp f422.cpp f150.cpp f123.cpp f324.cpp f430.cpp f8.cpp f284.cpp f498.cpp f136.cpp f375.cpp f382.cpp f259.cpp f176.cpp f17.cpp f372.cpp f416.cpp f271.cpp f190.cpp f173.cpp f66.cpp f95.cpp f186.cpp f218.cpp f306.cpp f410.cpp f393.cpp f389.cpp f37.cpp f401.cpp f44.cpp f367.cpp f15.cpp f21.cpp f351.cpp f43.cpp f275.cpp f459.cpp f108.cpp f404.cpp f184.cpp f378.cpp f451.cpp f51.cpp f160.cpp f369.cpp f472.cpp f303.cpp f495.cpp f159.cpp f467.cpp f86.cpp f428.cpp f371.cpp f331.cpp f100.cpp f239.cpp f486.cpp f233.cpp f296.cpp f257.cpp f241.cpp f383.cpp f405.cpp f476.cpp f256.cpp f357.cpp f450.cpp f262.cpp f463.cpp f169.cpp f412.cpp f72.cpp f315.cpp f297.cpp f33.cpp f168.cpp f79.cpp f345.cpp f500.cpp f106.cpp f442.cpp f330.cpp f434.cpp f386.cpp f423.cpp f348.cpp f240.cpp f156.cpp f339.cpp f415.cpp f370.cpp f419.cpp f92.cpp
^Tmake[1]: Leaving directory '/tmp/compiletimes'
4.07user <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< empty
3.36system
0:09.19elapsed
80%CPU (0avgtext+0avgdata 24204maxresident)k
make clean
make[1]: Entering directory '/tmp/compiletimes'
rm *.cpp
make[1]: Leaving directory '/tmp/compiletimes'
make generate_string
make[1]: Entering directory '/tmp/compiletimes'
echo "int main() {}" > main.cpp
for i in `seq 500`; do echo '#include <string>' > f$i.cpp; done
make[1]: Leaving directory '/tmp/compiletimes'
time make -j 9
make[1]: Entering directory '/tmp/compiletimes'
g++ f18.cpp f214.cpp f206.cpp f93.cpp f295.cpp f350.cpp f23.cpp f120.cpp f58.cpp f102.cpp f171.cpp f39.cpp f246.cpp f60.cpp f452.cpp f345.cpp f384.cpp f313.cpp f117.cpp f46.cpp f239.cpp f48.cpp f27.cpp f391.cpp f44.cpp f109.cpp f407.cpp f344.cpp f286.cpp f319.cpp f52.cpp f342.cpp f12.cpp f269.cpp f24.cpp f323.cpp f235.cpp f134.cpp f170.cpp f298.cpp f6.cpp f143.cpp f161.cpp f338.cpp f377.cpp f64.cpp f425.cpp f116.cpp f197.cpp f157.cpp f390.cpp f487.cpp f437.cpp f305.cpp f468.cpp f110.cpp f488.cpp f101.cpp f406.cpp f55.cpp f283.cpp f138.cpp f365.cpp f11.cpp f404.cpp main.cpp f347.cpp f491.cpp f356.cpp f270.cpp f194.cpp f19.cpp f61.cpp f341.cpp f476.cpp f289.cpp f400.cpp f397.cpp f464.cpp f132.cpp f163.cpp f131.cpp f98.cpp f247.cpp f113.cpp f152.cpp f379.cpp f212.cpp f244.cpp f433.cpp f381.cpp f181.cpp f127.cpp f497.cpp f86.cpp f285.cpp f293.cpp f40.cpp f220.cpp f358.cpp f266.cpp f166.cpp f461.cpp f202.cpp f453.cpp f130.cpp f346.cpp f261.cpp f77.cpp f103.cpp f217.cpp f409.cpp f301.cpp f255.cpp f7.cpp f376.cpp f234.cpp f327.cpp f373.cpp f56.cpp f352.cpp f304.cpp f349.cpp f211.cpp f145.cpp f332.cpp f299.cpp f57.cpp f122.cpp f489.cpp f13.cpp f424.cpp f334.cpp f260.cpp f288.cpp f16.cpp f149.cpp f337.cpp f38.cpp f242.cpp f96.cpp f154.cpp f81.cpp f80.cpp f238.cpp f67.cpp f388.cpp f118.cpp f210.cpp f201.cpp f172.cpp f5.cpp f492.cpp f465.cpp f49.cpp f35.cpp f277.cpp f229.cpp f28.cpp f392.cpp f111.cpp f126.cpp f408.cpp f291.cpp f441.cpp f387.cpp f444.cpp f128.cpp f180.cpp f254.cpp f88.cpp f328.cpp f200.cpp f478.cpp f121.cpp f443.cpp f112.cpp f368.cpp f105.cpp f195.cpp f78.cpp f198.cpp f162.cpp f353.cpp f75.cpp f460.cpp f147.cpp f496.cpp f414.cpp f440.cpp f3.cpp f290.cpp f73.cpp f466.cpp f249.cpp f59.cpp f146.cpp f265.cpp f427.cpp f471.cpp f177.cpp f432.cpp f204.cpp f362.cpp f481.cpp f322.cpp f436.cpp f185.cpp f174.cpp f144.cpp f248.cpp f380.cpp f366.cpp f135.cpp f435.cpp f84.cpp f124.cpp f10.cpp f196.cpp f252.cpp f216.cpp f237.cpp f153.cpp f225.cpp f148.cpp f278.cpp f449.cpp f4.cpp f279.cpp f470.cpp f318.cpp f193.cpp f74.cpp f292.cpp f482.cpp f499.cpp f76.cpp f1.cpp f155.cpp f29.cpp f280.cpp f41.cpp f97.cpp f326.cpp f221.cpp f282.cpp f129.cpp f63.cpp f34.cpp f91.cpp f485.cpp f164.cpp f325.cpp f142.cpp f431.cpp f26.cpp f228.cpp f69.cpp f361.cpp f312.cpp f85.cpp f276.cpp f139.cpp f355.cpp f413.cpp f490.cpp f178.cpp f395.cpp f296.cpp f446.cpp f141.cpp f53.cpp f251.cpp f65.cpp f114.cpp f90.cpp f462.cpp f333.cpp f99.cpp f454.cpp f320.cpp f189.cpp f175.cpp f399.cpp f493.cpp f448.cpp f360.cpp f302.cpp f479.cpp f445.cpp f469.cpp f215.cpp f309.cpp f268.cpp f480.cpp f317.cpp f403.cpp f36.cpp f140.cpp f250.cpp f167.cpp f281.cpp f207.cpp f209.cpp f9.cpp f104.cpp f329.cpp f494.cpp f2.cpp f311.cpp f232.cpp f22.cpp f223.cpp f158.cpp f236.cpp f438.cpp f224.cpp f62.cpp f477.cpp f107.cpp f222.cpp f14.cpp f340.cpp f25.cpp f316.cpp f137.cpp f54.cpp f82.cpp f125.cpp f264.cpp f165.cpp f205.cpp f89.cpp f263.cpp f310.cpp f363.cpp f274.cpp f83.cpp f182.cpp f243.cpp f429.cpp f188.cpp f321.cpp f87.cpp f192.cpp f483.cpp f47.cpp f308.cpp f458.cpp f484.cpp f473.cpp f447.cpp f94.cpp f394.cpp f287.cpp f31.cpp f421.cpp f300.cpp f359.cpp f231.cpp f183.cpp f385.cpp f213.cpp f68.cpp f426.cpp f418.cpp f272.cpp f343.cpp f396.cpp f71.cpp f374.cpp f253.cpp f30.cpp f420.cpp f227.cpp f199.cpp f386.cpp f273.cpp f230.cpp f439.cpp f314.cpp f151.cpp f402.cpp f474.cpp f364.cpp f115.cpp f219.cpp f179.cpp f133.cpp f203.cpp f417.cpp f267.cpp f336.cpp f20.cpp f475.cpp f191.cpp f187.cpp f307.cpp f245.cpp f70.cpp f398.cpp f457.cpp f42.cpp f119.cpp f354.cpp f32.cpp f411.cpp f335.cpp f208.cpp f422.cpp f150.cpp f123.cpp f324.cpp f258.cpp f430.cpp f8.cpp f284.cpp f498.cpp f136.cpp f375.cpp f382.cpp f259.cpp f176.cpp f17.cpp f372.cpp f416.cpp f271.cpp f190.cpp f173.cpp f66.cpp f95.cpp f186.cpp f218.cpp f306.cpp f410.cpp f393.cpp f389.cpp f37.cpp f401.cpp f455.cpp f367.cpp f15.cpp f21.cpp f351.cpp f43.cpp f275.cpp f459.cpp f108.cpp f184.cpp f378.cpp f451.cpp f51.cpp f160.cpp f369.cpp f472.cpp f303.cpp f495.cpp f159.cpp f467.cpp f428.cpp f371.cpp f331.cpp f100.cpp f294.cpp f486.cpp f233.cpp f500.cpp f257.cpp f241.cpp f383.cpp f405.cpp f456.cpp f256.cpp f357.cpp f450.cpp f262.cpp f463.cpp f169.cpp f412.cpp f72.cpp f315.cpp f297.cpp f226.cpp f33.cpp f168.cpp f79.cpp f45.cpp f106.cpp f442.cpp f330.cpp f434.cpp f50.cpp f423.cpp f348.cpp f240.cpp f156.cpp f339.cpp f415.cpp f370.cpp f419.cpp f92.cpp
make[1]: Leaving directory '/tmp/compiletimes'
76.63user <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< with <string>
10.91system
1:29.69elapsed
97%CPU (0avgtext+0avgdata 36824maxresident)k
0inputs+30976outputs (0major+3702337minor)pagefaults 0swaps
make clean
make[1]: Entering directory '/tmp/compiletimes'
rm *.cpp
make[1]: Leaving directory '/tmp/compiletimes'
make generate_future
make[1]: Entering directory '/tmp/compiletimes'
echo "int main() {}" > main.cpp
for i in `seq 500`; do echo '#include <future>' > f$i.cpp; done
make[1]: Leaving directory '/tmp/compiletimes'
time make -j 9
make[1]: Entering directory '/tmp/compiletimes'
g++ f18.cpp f214.cpp f206.cpp f93.cpp f295.cpp f350.cpp f23.cpp f120.cpp f58.cpp f102.cpp f171.cpp f39.cpp f246.cpp f60.cpp f452.cpp f345.cpp f384.cpp f313.cpp f117.cpp f46.cpp f239.cpp f48.cpp f27.cpp f391.cpp f44.cpp f109.cpp f407.cpp f344.cpp f286.cpp f319.cpp f52.cpp f342.cpp f12.cpp f269.cpp f24.cpp f323.cpp f235.cpp f134.cpp f170.cpp f298.cpp f6.cpp f143.cpp f161.cpp f338.cpp f377.cpp f64.cpp f425.cpp f116.cpp f197.cpp f157.cpp f390.cpp f487.cpp f437.cpp f305.cpp f468.cpp f110.cpp f488.cpp f101.cpp f406.cpp f55.cpp f283.cpp f138.cpp f365.cpp f11.cpp f404.cpp main.cpp f347.cpp f491.cpp f356.cpp f270.cpp f194.cpp f19.cpp f61.cpp f341.cpp f476.cpp f289.cpp f400.cpp f397.cpp f464.cpp f132.cpp f163.cpp f131.cpp f98.cpp f247.cpp f113.cpp f152.cpp f379.cpp f212.cpp f244.cpp f433.cpp f381.cpp f181.cpp f127.cpp f497.cpp f86.cpp f285.cpp f293.cpp f40.cpp f220.cpp f358.cpp f266.cpp f166.cpp f461.cpp f202.cpp f453.cpp f130.cpp f346.cpp f261.cpp f77.cpp f103.cpp f217.cpp f409.cpp f301.cpp f255.cpp f7.cpp f376.cpp f234.cpp f327.cpp f373.cpp f56.cpp f352.cpp f304.cpp f349.cpp f211.cpp f145.cpp f332.cpp f299.cpp f57.cpp f122.cpp f489.cpp f13.cpp f424.cpp f334.cpp f260.cpp f288.cpp f16.cpp f149.cpp f337.cpp f38.cpp f242.cpp f96.cpp f154.cpp f81.cpp f80.cpp f238.cpp f67.cpp f388.cpp f118.cpp f210.cpp f201.cpp f172.cpp f5.cpp f492.cpp f465.cpp f49.cpp f35.cpp f277.cpp f229.cpp f28.cpp f392.cpp f111.cpp f126.cpp f408.cpp f291.cpp f441.cpp f387.cpp f444.cpp f128.cpp f180.cpp f254.cpp f88.cpp f328.cpp f200.cpp f478.cpp f121.cpp f443.cpp f112.cpp f368.cpp f105.cpp f195.cpp f78.cpp f198.cpp f162.cpp f353.cpp f75.cpp f460.cpp f147.cpp f496.cpp f414.cpp f440.cpp f3.cpp f290.cpp f73.cpp f466.cpp f249.cpp f59.cpp f146.cpp f265.cpp f427.cpp f471.cpp f177.cpp f432.cpp f204.cpp f362.cpp f481.cpp f322.cpp f436.cpp f185.cpp f174.cpp f144.cpp f248.cpp f380.cpp f366.cpp f135.cpp f435.cpp f84.cpp f124.cpp f10.cpp f196.cpp f252.cpp f216.cpp f237.cpp f153.cpp f225.cpp f148.cpp f278.cpp f449.cpp f4.cpp f279.cpp f470.cpp f318.cpp f193.cpp f74.cpp f292.cpp f482.cpp f499.cpp f76.cpp f1.cpp f155.cpp f29.cpp f280.cpp f41.cpp f97.cpp f326.cpp f221.cpp f282.cpp f129.cpp f63.cpp f34.cpp f91.cpp f485.cpp f164.cpp f325.cpp f142.cpp f431.cpp f26.cpp f228.cpp f69.cpp f361.cpp f312.cpp f85.cpp f276.cpp f139.cpp f355.cpp f413.cpp f490.cpp f178.cpp f395.cpp f296.cpp f446.cpp f141.cpp f53.cpp f251.cpp f65.cpp f114.cpp f90.cpp f462.cpp f333.cpp f99.cpp f454.cpp f320.cpp f189.cpp f175.cpp f399.cpp f493.cpp f448.cpp f360.cpp f302.cpp f479.cpp f445.cpp f469.cpp f215.cpp f309.cpp f268.cpp f480.cpp f317.cpp f403.cpp f36.cpp f140.cpp f250.cpp f167.cpp f281.cpp f207.cpp f209.cpp f9.cpp f104.cpp f329.cpp f494.cpp f2.cpp f311.cpp f232.cpp f22.cpp f223.cpp f158.cpp f236.cpp f438.cpp f224.cpp f62.cpp f477.cpp f107.cpp f222.cpp f14.cpp f340.cpp f25.cpp f316.cpp f137.cpp f54.cpp f82.cpp f125.cpp f264.cpp f165.cpp f205.cpp f89.cpp f263.cpp f310.cpp f363.cpp f274.cpp f83.cpp f182.cpp f243.cpp f429.cpp f188.cpp f321.cpp f87.cpp f192.cpp f483.cpp f47.cpp f308.cpp f458.cpp f484.cpp f473.cpp f447.cpp f94.cpp f394.cpp f287.cpp f31.cpp f421.cpp f300.cpp f359.cpp f231.cpp f183.cpp f385.cpp f213.cpp f68.cpp f426.cpp f418.cpp f272.cpp f343.cpp f396.cpp f71.cpp f374.cpp f253.cpp f30.cpp f420.cpp f227.cpp f199.cpp f386.cpp f273.cpp f230.cpp f439.cpp f314.cpp f151.cpp f402.cpp f474.cpp f364.cpp f115.cpp f219.cpp f179.cpp f133.cpp f203.cpp f417.cpp f267.cpp f336.cpp f20.cpp f475.cpp f191.cpp f187.cpp f307.cpp f245.cpp f70.cpp f398.cpp f457.cpp f42.cpp f119.cpp f354.cpp f32.cpp f411.cpp f335.cpp f208.cpp f422.cpp f150.cpp f123.cpp f324.cpp f258.cpp f430.cpp f8.cpp f284.cpp f498.cpp f136.cpp f375.cpp f382.cpp f259.cpp f176.cpp f17.cpp f372.cpp f416.cpp f271.cpp f190.cpp f173.cpp f66.cpp f95.cpp f186.cpp f218.cpp f306.cpp f410.cpp f393.cpp f389.cpp f37.cpp f401.cpp f455.cpp f367.cpp f15.cpp f21.cpp f351.cpp f43.cpp f275.cpp f459.cpp f108.cpp f184.cpp f378.cpp f451.cpp f51.cpp f160.cpp f369.cpp f472.cpp f303.cpp f495.cpp f159.cpp f467.cpp f428.cpp f371.cpp f331.cpp f100.cpp f294.cpp f486.cpp f233.cpp f500.cpp f257.cpp f241.cpp f383.cpp f405.cpp f456.cpp f256.cpp f357.cpp f450.cpp f262.cpp f463.cpp f169.cpp f412.cpp f72.cpp f315.cpp f297.cpp f226.cpp f33.cpp f168.cpp f79.cpp f45.cpp f106.cpp f442.cpp f330.cpp f434.cpp f50.cpp f423.cpp f348.cpp f240.cpp f156.cpp f339.cpp f415.cpp f370.cpp f419.cpp f92.cpp
make[1]: Leaving directory '/tmp/compiletimes'
216.09user <<<<<<<<<<<<<<<<<<<<<<<<< with <future>
24.50system
4:03.05elapsed
98%CPU (0avgtext+0avgdata 79820maxresident)k
0inputs+32920outputs (0major+9287255minor)pagefaults 0swaps
make clean
make[1]: Entering directory '/tmp/compiletimes'
rm *.cpp
make[1]: Leaving directory '/tmp/compiletimes'
FILES=$(wildcard *.cpp)
NJOBS=$(shell echo $$(nproc) + 1 | bc)
all:
g++ $(FILES)
generate_empty:
echo "int main() {}" > main.cpp
for i in `seq 500`; do touch f$$i.cpp; done
generate_string:
echo "int main() {}" > main.cpp
for i in `seq 500`; do echo '#include <string>' > f$$i.cpp; done
generate_future:
echo "int main() {}" > main.cpp
for i in `seq 500`; do echo '#include <future>' > f$$i.cpp; done
generate_py:
for i in `seq 500`; do echo "import f$$i" >> main.py; done
for i in `seq 500`; do touch f$$i.py >> main.py; done
clean:
rm *.cpp
rm *.py
bench:
cat /proc/cpuinfo | grep 'model name' | uniq
echo "num cores: $$(cat /proc/cpuinfo | grep processor | wc -l)"
make clean
make generate_empty
time make -j $(NJOBS)
make clean
make generate_string
time make -j $(NJOBS)
make clean
make generate_future
time make -j $(NJOBS)
make clean
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment