タグ

ブックマーク / blog.kazu69.net (5)

  • ProxyとReflectを使ってオブジェクトを拡張する | 69log

    Proxyオブジェクトがサポートされたことで、 JavaScriptにでもオブジェクト操作が柔軟に拡張できるようになった。 これにより処理を動的に拡張するメタプログラミングできる。 ということで、参考になりそうな事例があったので試してみた。 caniuseでProxyのサポートを見るとモダンブラウザでは実装済である。 まず、Proxyオブジェクトをおさらいする。 Proxyオブジェクト基構文は次の通り // target const target = {}; // handler const handler = { // trap get(target, property) { return Reflect.get(target, property); } } const proxy = new Proxy(target, handler); targetはProxyで拡張するオブジェク

    michael26
    michael26 2018/05/05
  • HTTP2 Server PushとService Workerを使ったレスポンス改善

    Express width HTTP2 Server Push を試したので、 今回はPushされたリソースをCache APIでブラウにキャッシュして、 二度目以降のアクセスはキャッシュを使いHTTPリクエストしないでレスポンスをさらに向上できることを試してみた。 復習でHTTP2 Server Pushを試してみる。 HTTP2 Server Pushサンプルで作ったアプリケーションではStreamにリソースファイルをPushしてレスポンスを返すことで、Server Pushを実現している。 もしアプリケーションの前にNginxなどのProxyサーバーがある場合は、HTTPヘッダーにLinkヘッダーを追加してレスポンスを返すようにしたら良い。 Promise.all( pushFiles.map(file => { const option = Object.assign(stremO

    HTTP2 Server PushとService Workerを使ったレスポンス改善
    michael26
    michael26 2017/07/22
  • Serverless Frameworkを使ってAWS LambdaとAPI Gatewayを試した

    サーバーレスでアプリケーションを構築するためのNode.jsのフレームワークServerlessを使って、 AWS LambdaAmazon API GatewayをつかってSlack Botを試してみたときのメモ。 SlackのメッセージをAPI GatewayにPOSTして、AWS Lambdaで処理をして、webhookを使ってslackに投稿する。 AWS CLIを端末(Mac)にインストールするなにはともあれ、AWSのコマンドラインインターフェイスを使うので端末にインストールする。 curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" sudo python get-pip.py The directory '/Users/YOU/Library/Caches/pip/http' or its parent di

    Serverless Frameworkを使ってAWS LambdaとAPI Gatewayを試した
    michael26
    michael26 2016/08/28
  • stackprofを使って、Rspecのテストのパフォーマンス改善

    stackprof を使えばrspecのプロファイリングが出来る戸言うことを知ったので、 早速テストでためしてみた。 Gemfileに追加して そしてbundle install。 around hookでテストの開始前後での時間を計測します。 stackprofの設定は環境変数で渡します。 ということで、いかのようにspec_helper.rbに追加。 そして実行 指定したディレクトリにプロフファイリング結果がdumpされる プロファイル結果を分析 この場合 ActiveSupport::Callbacks#run_callbacks が重そう。 こんな感じで重い箇所を洗い出して改善していける。 参考にしたページ Profiling RSpec examples with Stackprof railsアプリでstackprofを使ってボトルネックを探す + JSON::Schema(2

  • Rubyのベンチマークを計測するのにbenchmark-ipsが便利そうだった

    Rubyのベンチマークを計測するのにbenchmark-ipsを使うと簡単だし、便利そうだったのでメモ。 Rubyでベンチマークを取る場合、Benchmarkを使うことが多い。 この場合、実行回数を勘所で決めないといけなかったりする。 benchmark-ipsを使うと、1秒あたりに何回実行できたのかを評価するので、実行回数は気にしなくていい。 あと、標準偏差も出してくれるあたりもいい感じ。 ちなみに、デフォルトではリハーサル2回、番は5回実行。 参考にしたページ: Unraveling String Key Performance in Ruby 2.2

    michael26
    michael26 2015/06/19
    “benchmark-ipsを使うと、1秒あたりに何回実行できたのかを評価するので、実行回数は気にしなくていい。あと、標準偏差も出してくれるあたりもいい感じ。”
  • 1