golang1.9 ReuseRecordでCSVのREADパフォーマンスが向上するかも!?
golangを1.9にアップデートしてみました。
Go 1.9 Release Notes - The Go Programming Language
release noteを見ると機能の追加からパフォーマンスの向上まで色々ありますが、
今回は、CSVのREAD性能が向上したというので、ベンチマークを取ってどのくらい改善されたのか確認します。
MacにVisualStudioCodeを使ったpython開発環境の構築
Mac上(macOS Sierra)にVisualStuioCodeをインストールして、pythonの開発環境を構築していきます。
pythonは2系と3系がありますが、今回は3系を利用します。
前提
- homebrewが導入済みであること
- VisualStudioCodeがインストール済みであること
インストール
terminalを起動し、以下の手順でpythonをインストールします。
% brew install python3 % which python3 /usr/local/bin/python3 % which pip3 /usr/local/bin/pip3
以下は、pip3でインストールすることに注意して下さい。
参考
% pip3 install virtualenv % pip3 install virtualenvwrapper
virtualenvwrapper
を使うために、以下の環境変数を追加します。
$ vim ~/.basrh
補足 zshを利用している場合は、~/.zshrcに追加して下さい。
export WORKON_HOME=~/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
追加した環境変数を読み込みます。
$ source ~/.basrh
仮想環境の作成
virtualenvにより、システム側にインストールされたpython環境と切り離した環境を作る。
基本は、システム側に大量のpackageがインストールされてカオスになることを防ぐために、基本は案件毎に仮想環境を用意して開発した方が良いです。
% mkdir /Users/kzdev/python_env % cd /Users/kzdev/python_env # mkvirtualenv <option> <仮想環境の名前> % mkvirtualenv --no-site-package venv1 # --never-download : ネットワークからDLをしない # --system-site-packages : インストール済みモジュールを使用する # --no-site-packages : インストール済みモジュールを全て外した状態で仮想環境が作成される # 作成された仮想環境がロードされた状態になる (venv1)%
VisualStudioCode設定
- Command + Shift + Pを押して、Command Paletteを起動
>shell
と入力して、以下の画像赤枠の項目を選択実行する
補足
上記の設定で、terminal上からcode
でVisualStudioCodeを起動することが出来る用になります。
Code
-基本設定
-設定
を開き、以下の設定を追記する。
"python.pythonPath": "/Users/kzdev/python_env/venv1/bin/python"
VisualStudioCodeをterminal上から起動する。
(venv1)% code .
この状態で、仮想環境のpythonを使ってdebugが出来るようになります。
試しに、debug実行を試してみます。
breakpointを指定して、プログラムを起動します。
上記の通り、指定したbreakpointで停止していることが確認できました。
これでVisualStudioCodeを使ってpython開発ができるようになりました。
IntelliJ IDEAの動作が遅い時の対策
普段は、InteliJ IDEAを使って開発しているのですが、メモリの初期設定が以下のようにかなり少ないです。
初期状態で開発を行うと、アプリケーションの規模によっては内部indexの作成に時間がかかりかなりストレスが溜まります。
開発のストレスを少しでも軽減するために、設定の変更で利用するリソースを適切に調整して対処を行います。
-Xms128m
-Xmx2048m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
そこで、端末のメモリ状況に合わせて、ヒープサイズを増やします。
Intelijを起動して上部のHelpメニューないから下記の項目を開きます。
すると以下のようなファイルがIntelij内で開かれます。
ここの数値を今回は、以下のように変更します。
-Xms2G -Xmx4G -XX:+UseG1GC -XX:-UseParNewGC -XX:-UseConcMarkSweepGC -XX:ReservedCodeCacheSize=240m -XX:+UseCompressedOops -XX:+OmitStackTraceInFastThrow -Dsun.io.useCanonCaches=false
保存したら、InteliJを再起動して完了です。初期に比べて相当快適になりました。
参考
KEA-DHCPの構築
ISC-DHCPからKEA-DHCPに移行した際にサーバ構築を行いましたので、 構築手順をまとめます。今回の移行に至った経緯と現状の懸念事項は、以下の通りです。
採用理由
懸念事項
- DHCPフェイルオーバに未対応(RFC3074相当)
参考
- Facebook ではデータセンターにおいて Kea DHCP サーバーをどのように活用しているか?
- ISC、dhcpd やめるってよ - 次世代 ISC DHCP サーバー Kea 導入・設定ガイド
続きを読む