関数内のnumpy.empty(...)の部分は計算とは関係ありませんがe-5秒くらいのオーダーだったので無視してよさそうです。(ちなみにですがnumpy.random.rand(...)の部分は無視できないほど時間がかかります。start_t)JITを有効化してみる以下のようにデコレータをつけて、JITを有効化してみます。ret測定の結果、出力は1.805896282196045となり、100倍ほどの高速化に成功しました。JITを有効化/並列化してみる以下のようにデコレータを変更し、range関数をnumba.prange関数に置き換え、並列化してみます。1)の部分は、numbaが勝手にうまいこと(hoist)してくれて、期待通りの動作をします。ret測定の結果、出力は0.7335679531097412となり、200倍以上の高速化に成功したことになります。まとめ限られたケースにはなりますが、Numbaをうまく使えば非常に簡単に高速化ができることがわかりました。typescript最近、バックエンド開発でNode.jsを用いています。JavaScriptは仕様がどんどん良くなってきているし、コールバックを用いた非同期処理も個人的には好きです。コードベースが大きくなると「型があればなあ...」と思うこともしばしば。そこでTypeScriptに足を突っ込んでみることにしました。Node.js/ExpressでWebバックエンドの開発を始める方法を紹介します。TypeScriptの文法・言語の機能についてはあまり触れません。(それらについては以下が参考になります。用いるなどして、package.jsonを作成します。--save-devJavaScriptからTypeScriptへのコンパイルに必要です。以下のような内容をtsconfig.jsonという名前で保存します。]}軽く説明すると、このようになります。「どの仕様に対応したJavaScriptのコードをコンパイルによって生成するか」を指定しています。ここではES5を指定しています。コンパイル後のコードを保存するディレクトリを指定します。trueにすることで、いろいろなTypeScriptのチェック機構が有効になります。コンパイルの対象にしたいファイル群を指定します。--save-devこのようにパッケージと一緒に型定義ファイルもインストールすることで、そのパッケージの関数やオブジェクトを使うときにもTypeScriptの型チェックを利用できるようになります。コマンドでTypeScriptコードを実行できるようになります。ts-nodeは、「tscを用いてTypeScriptのコードをJavaScriptへコンパイルし、それをnodeで実行する」ということをしてくれています。開発中に使うと便利です。本番環境での仕様は推奨されていません。中身を以下のように書き換えます。そのJavaScriptコードを実行できるようになります。その2つを組み合わせたことをやってくれますが、開発中のみ利用します。以下のコマンドでサーバーが起動します。dev以下のように、きちんと動いていることがわかります。用いて、エンドポイント単位のテストをしてみます。準備supertestのインストールsupertestは、Node.jsのHTTPサーバーをテストするためのライブラリです。型定義ファイルも同時にインストールします。https://github.com/visionmedia/supertestmochaのインストールmochaは、テストのためのフレームワークです。いう関数はmochaが提供しているものです。型定義ファイルも同時にインストールします。テストを実行できるようになります。より、JavaScriptによってコンパイルすること無くテストを実行できます。コードtest/routes.tsとても簡単なものです。(37ms)テストが通りました。ビルド・実行する本番環境で実行する際には、JavaScriptにコンパイル(ビルド)して、その結果生成されたファイルをNodeで実行する必要があります。このための準備はすでにできていて、以下のスクリプトを実行するだけで大丈夫です。特徴まとめawsAWSを使っている人全員が触ったことがあるであろうS3。