CMakelistsに追加すると処理が高速化する魔法の1行についてまとめました。
【C++最適化】魔法の1行で高速化
エンジニアにとって、プログラムの処理速度は典型的な問題の1つです。
この処理速度の問題を解決するための方法として、コンパイルの最適化オプションがあります。恥ずかしながら、コンパイルの「最適化」を先日初めて知りました。これによって、私のプログラムの処理が格段に早くなりました。今まで処理速度で悩んでいてのは何だったんだ、という気持ちになりました。
この記事では、CMakelistsでコンパイルの最適化を指定することで、処理を高速化する方法についてまとめていきます。
魔法の1行
結論としては、CMakelists.txtに下記の1行を追加するだけです。
add_compile_options(-O2)
CMakelistsの実装例
cmake_minimum_required(VERSION 2.8.3) project(hoge_project) #魔法の1行 add_compile_options(-std=c++11 -O2 -g -Wall) find_package(catkin REQUIRED COMPONENTS std_msgs ) catkin_package( ) include_directories( ${catkin_INCLUDE_DIRS} ) add_executable(hogehoge src/hogehoge.cpp) target_link_libraries(hogehoge ${catkin_LIBRARIES})
解説
- add_compile_options
コンパイルオプションを指定 - オプション
- -std=c++11
C++11でコンパイル - -O2
最適化 - -g
デバックあり - -Wall
警告あり
- -std=c++11
補足
「-O2 -g」と「RelWithDebInfo」モードは同値らしい。
さいごに
こんな便利なオプションなのに、今まで誰も教えてくれませんでした。C++のプログラムにおいて処理速度で困っている方は、ぜひ試してみてください。参考になれば幸いです。
以上です。
Ad.
コメント