TL;DR Chromeで console.profile() と console.profileEnd() を使うと超簡単にJSの実行パフォーマンスを解析できる、という事実を今日知ったのでシェアさせていただきます。 やりたいこと JSの任意の関数の実行プロファイル (コールスタックごとの所要時間) を見たい。 やりかた Google Chromeのデバッグコンソールで以下のようなスクリプトを入力して実行 (見やすくするため改行入れてますが実際には一行で)
稀に落ちるプログラムの原因を追求するため、ログを仕込む必要に迫られました。 Pythonに標準で用意されているloggingモジュールの使い方を調べた時のメモ書きを 残しておきます。 一番簡単な使い方 単純に標準出力へエラーを表示するだけなら、これだけでOKです。 # -*- coding:utf-8 -*-import logginglogging.error('エラー') 実行すると、こんな表示になります。 エラーとデバッグログを出力しようとしても、 # -*- coding:utf-8 -*-import logginglogging.error('エラー')logging.debug('デバッグ') debugは表示されません。ログの出力レベルの初期値が「WARNING」だからです。 出力するログのレベルを変更するには
以前の記事で、 Webアプリケーションのデバッグの仕組み について触れました。今回は実践的なJavaScriptのデバッグについて掘り下げていきたいと思います。 ブラウザデベロッパツール 私の個人的なお気に入りはChromeデベロッパツールです。SafariやFirefoxはChromeほどの高水準に達していません。しかし、徐々に改善されてきています。FirefoxにはFirebugと改良されたFirefoxデベロッパツールが組み合わされた機能が備わっています。もし、Firefoxチームがビルトインされているデベロッパツールの改良の中で素晴らしい仕事をし続けたとしたら、Firebugはいつか、すたれるかもしれません。 個人的な好みにかかわらず、ターゲットとするあらゆるブラウザで、全てのコードのテストやデバッグができるようにすべきです。”あらゆるブラウザ”には、かの有名なInternet E
こんにちは, Androidチームの @tomoaki_imai です。 先日 shibuya.apk というAndroid勉強会で メルカリのデバッグ機能についてお話をさせていただきました。スライドはこちらです。 www.slideshare.net 要点としては以下2点となります。 デバッグ機能はモジュール化して管理し、productionのコードに入れないようにする メルカリではクライアントのデバッグ設定画面以外にデバッグメニューもあるが、メニュー表示はUIに影響を及ぼすので、ビジビリティをデバッグ機能上で制御できるようにする 今回は発表ではほとんど話さなかった、メルカリのAndroidで実装しているデバッグ機能そのものについてもう少し触れたいと思います。 そもそもデバッグ機能とは このデバッグ機能は開発者が効率よく開発を進めるためにDEV版のみに追加しているものです。 例えば サー
Android Studioでプロジェクトを作ると、 androidTestが自動的に生成されるので、 Android Studio で Unit Testを試してみました。 準備 public class Sample { //めっちゃ適当ですみません。 public boolean isTest(){ return true; } public boolean isNotTest(){ return false; } } alt + enterで、 Create Testメニューを実行すると、 このようなダイアログが表示されまして、 必要に応じて、setUp/tearDownにチェックを入れます。 またすでに実装されているメソッドの一覧が表示され、 チェックを入れると、自動的にtest用メソッドが追加されます。 OKを押し進めると、 Test用クラスが生成されます。 Test実行 メニ
こんにちは、霙(@xxmiz0rexx)です。 スマートフォンサイトを制作している時、たまーに困ることがあります。 それは、実機でしか再現しない表示崩れ。 Macでみた時は大丈夫だったのに、何故かiPhoneでは謎の余白が…なんてことが先日もありまして、 解決のためにSafariのWebインスペクタ機能を使ってみましたので使い方をメモしたいと思います。 Webインスペクタ機能とは iPhoneで見ているページのソースをMacで見ながらデバッグできる機能です。 使うには双方へのちょっとした設定と、お互いをケーブルで繋ぐことが条件。 みんなだいすきGoogle Chromeの開発者ツールと同じようなものですね。 必要なもの 1.Mac 2.iPhone 3.ケーブル 次の章で使い方を書いていきたいと思います。 Webインスペクタ機能を利用する手順 1:iPhoneとMacをケーブルで繋ぐ まず
今はWebブラウザの種類も増え、かつスマートフォンまであるなどWebサイトの作成も大変になっています。しかも開発ツールの使いやすいブラウザ、使いづらいブラウザもあり、開発に時間がかかります。 そんな現状を打破できるかも知れないのがVorlon.JSです。Vorlon.JSを使うと多くのWebブラウザのデバッグを一元管理できるようになります。 Vorlon.JSの使い方 Vorlon.JSはnpmでインストールできます。 $ npm install vorlon そしてvorlonコマンドでサーバが立ち上がります。 $ vorlon 後はこのVorlon.JSが出しているJavaScriptをデバッグしたいWebページ内に組み込みます。 <script src="http://localhost:1337/vorlon.js"></script> これで準備は完了です。例えば以下のようになり
(lldb) po [self _ivarDescription] <DetailViewController: 0x7fc94b637db0>: in DetailViewController: in UIViewController: _view (UIView*): <UIView: 0x7fc94b63c360> _tabBarItem (UITabBarItem*): nil _navigationItem (UINavigationItem*): <UINavigationItem: 0x7fc94b63ae20> _toolbarItems (NSArray*): nil _title (NSString*): nil _nibName (NSString*): @"jAO-Jw-mTY-view-IBP-J8-Ec0"<__NSCFString: 0x7fc94b6380e
この記事のオリジナルは voxxed に投稿されたものです。 JavaScript関連の問題を抱えるチームをサポートする仕事を通じて、いくつか共通の問題点があることに気づきました。もしあなたもJavaScriptに対するイライラを感じているのであれば、この記事は何らかの助けになるかもしれません。おことわり:私がお教えするヒントはすでにご存知のものもあるとは思いますが、うまくいけば、多少なりとも有用な情報があるかもしれません。特にエンタープライズアプリケーションやCMSソリューションを構築する際に有効なヒントです。チームの誰もが話したがらないCMSのコードについてお話しします。いずれも必要に応じて採用できるものです。 debuggerステートメント 大半のブラウザでサポートされているにもかかわらず、JavaScriptを書く際に最も活用しきれていない機能の1つです。debuggerステートメ
あなたとスレッドダンプ - スレッドダンプ入門 - この国では犬が が非常にわかりやすく、自分でブログエントリを書く必要はないが、Oracle Database や Linux の性能分析に携わる者の観点から Java のスレッドダンプについて整理してみた。具体的なスレッドダンプの分析方法はサポートエンジニアが語るWebLogic Serverトラブルシュートのノウハウがとてもわかりやすい。 WebLogic のスレッドダンプの見方については id:yamadamn さんの スレッドダンプから見るWebLogic Serverの世界 #javaee - yamadamnのはてな日記 がわかりやすい。 スレッドダンプとは Javaのスレッドのスナップショット。 取得した瞬間のJava仮想マシン(JVM)内に存在するスレッド(ID、名前、状態、タイプなど)とコールスタックを見ることができる。
これは Unity Advent Calendar 2014 の16日目の記事です。 昨日は sassembla@github さんの AssetBundleを高速に作る でした。 こんにちは。komiyak です。 普段、私は Web 系の業務システム開発を請け負うフリーランスのプログラマをしているのですが、 ここ半年ほど、Unity を使ったゲーム開発に従事しておりました。 私は、フリーランスになる以前は、 家庭用ゲームソフトのデベロッパーでゲームプログラマーをしておりました。 そのためゲーム開発に関しては、多少の知見があります。 しかし初めて Unity を触った時は、いろいろ戸惑いが多かったです。 Unity のお作法的に、どういうふうに実装をすればゲームが組み上がっていくのか、 全然イメージが湧きませんでした...。 ある程度 Unity になれてきた、今思い返すと、 勉強しはじ
JSのエラーをいい感じに貯めたいキモチが溢れてきた。 いい感じとは、エラー内容だけではなくUAとかそういうのを含めて、という意味。 TDのJS SDKだとピッと出来そうだったのでやってみた。 https://github.com/hisaichi5518/td-js-error めっちゃ簡単やんけ!!!!!!!!!!!!!!!!!!!!!!!!!!!! Rails使ったから本質的な部分がわかりにくくなった気がするけど、 https://github.com/hisaichi5518/td-js-error/blob/master/app/assets/javascripts/root.js.coffee の部分だけです。 onerrorの時にtrackEventを送る。送る時にユーザーのidとかも送るといいかもしれない。あとは、js_errorsテーブルのデータをグラフにするなりご自由に、
概要 logging を利用してみる。 ドキュメント モジュールの使い方は、公式ドキュメント「logging — Logging facility for Python」に概要が書いてある。 また「Logging HOWTO」が具体的な使い方に関して書いてある。 使い方 以下が一番簡単な例。 #!/usr/bin/env python # -*- coding: utf-8 -*- import logging def main(): logging.warning('わーにんぐ') logging.info('いんふぉ') if __name__ == '__main__': main() 実行すると以下のようになる。これはデフォルトレベルが「WARNING」以上だから。 WARNING:root:わーにんぐ ログのレベルは以下のようになる。 レベル 関数 数値 概要 CRITICAL
Mac SafariのWebインスペクタでのデバック iOS6になり、iPhoneで開いているページをMacのsafariからwebインスペクタによるデバックが可能になりました。 MacのSafariのバージョンが古い方はこちらからアップデートを行えます。 iPhoneの設定も必要となります。 iPhoneの設定は 設定>Safari>詳細 でWebインスペクタをON 設定完了致しましたら、iPhoneをMacにUSB等で接続しましょう。 接続しましたら、Safariの開発メニューを選択。開発メニューが表示されてない方は以下の手順で ※メニューで「Safari → 環境設定」で設定メニューを開きます。 ※設定メニューで「詳細タブ」を開き、「メニューバーに”開発”メニューを表示」にチェックを入れます。 開発メニューを開きますと、以下の様に接続したiPhone名が出てきます。(一応名前を隠しま
最近のWebブラウザの進化によってJavaScript開発はとても便利になっています。ブレイクポイントを差し込んだり、コンソールを使うことでどんどん開発が進められるようになっているでしょう。 そんなJavaScript開発をさらに便利にしてくれそうなソフトウェアがDeb.jsです。ごくごく小さなデバッガーです。 Deb.jsの使い方 Chrome ウェブストアで公開されていますので、インストールします。 こちらがインストール画面です。 インストールされるとDebアイコンが追加されます。 こんな感じでURLに?debjsを追加すると自動で読み込まれるようになります。 任意の関数に.deb()を追加するとスタックとレースされるようになります。 引数や返り値、実行時間などもとれて便利です。 色分けもされるので分かりやすいですね。 開発効率向上を考えると、デバッグ方法は色々知っておいて損はないでし
JavaScript で人為的に例外を発生させるには、大きく分けると以下の2種類があります。 throw new しない書き方 throw "ソフトウェアでエラーが発生しました。サポート担当者に連絡し、この問題を報告してください。"; o_o は String 扱いで、o_o.stack も undefined になっています。 throw new する書き方 throw new Error("一般的なエラーだよ"); throw new TypeError("型がちがうよ"); throw new SyntaxError("文法おかしいよ"); throw new URIError("URIちがうよ"); 他にも、RangeError, ReferenceError, MediaError, FileError, EvalError などがあります。 throw new した場合は、o_
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く