Adsenseリンクユニット

2013年6月15日土曜日

Google Chromeを開いたときにgmailを常に表示する方法

Google Chromeの初期ページ設定の方法です。以前設定した操作箇所を完全に忘れていたので備忘録として残しておきます。

Google Chrome初期ページの設定

Gmailのページを初期ページに設定する方法を例に解説しますね。

  1. 最初にご自身のGmailページを開いておきます。
  1.  ブラウザ右上のGoogle Chromeの設定アイコンをクリックします。
Google Chromeの設定アイコン画像


2013年6月9日日曜日

.NET リソースリークをOS標準のソフトで直ぐに見つける方法

.net frameworkでアプリケーションを作成すると、C、C++の経験者には基本の”き”であるメモリの開放処理をどこに書けばいいのだろうと思ったことはありませんか。

.netアプリケーションをプログラミングする際に、javaとかでもそうですが、オブジェクトの開放処理を記述しないコーディングになり、一抹の不安に駆られることがあると思います。

 メモリリーク、リソースリークが大問題を引き起こすことを今までの経験から分かっているからなんですね。

.net や javaのオブジェクトはスコープを抜けた際に勝手にメモリ解放の対象になり、GCとよばれるガーベージコレションがこれまた勝手にメモリが足りなくなってきたと判断したタイミングでメモリを開放します。

プログラマーからすると記述しなくても良いので、メモリ解放の記述漏れがなくなることはとてもありがたいことです。

ですが、スコープを抜ければ、リソースが勝手に開放されると思っている方は、とても危険なバクを埋め込んでしまっているかもしれません。

リソースの開放に関しては、明示的にプログラミングする必要があるのです。


リソースとは、単純にアプリが獲得したピープメモリではなく、OSが管理しているオブジェクトです。代表的な例はファイルです。ファイルにアクセスするには、OSが管理するオブジェクトと橋渡しをするハンドルを仲介しない限り扱えないようにOSが設計されているのです。

C,C++では当たり前のようにハンドルを意識せざるを得ない、プログラミングでハンドルの記述をしないとファイルアクセスできなかったので、否が応にもハンドルの存在が分かってしまうのですが、昨今の便利になった.netやjavaだとハンドルってなんですか、そんなの意識する必要性そのものがあるのですかと思う方も多いと思います。

もちろん、ハンドルという言葉を無理に意識することはないです。ですが、リソースリークが発生して困っているならばもう一歩踏み込んでハンドルを理解する必要があります

それでは、リソースリークが起こるとどんな現象、問題が引き起こされるのでしょうか。私もそうですが、痛い思いをして初めて事の重大さに気づくことってありますよね。

お客様にご迷惑をかけてしまうことがもっとも痛いことですよね。リソースリークをしっかりテストしていないと、後になって深刻な問題を引き起こすことになります。プロセスダウンします。

そして、お客様に提供した頃に気づくようでは、ソース修正の範囲が膨大になってしまう可能性大です。

リソースってなんなの?から始めましょう。OS標準のソフト、タスクマネージャを使えば、小難しいツールを使わなくても、リソースリークが発生しているかどうか簡単に判別できるんですよね。

「ALT+SHIFT+DEL」で表示するか、あるいはタスクバーを右クリックで出てる「タスクマネージャの起動」から表示される下記の画面です。


タスクマネージャでリソースリークを検出する方法

 デフォルトの表示列では、どのプロセスがどれくらいメモリを使用しているのか分かりますが、リソースリークを調べたい場合は次の手順で表示列を増やします。

  1. 「プロセス」タブをクリックする。
  2. メニューバーの「表示」をクリックし、「列の選択」をクリックする。
  3.  「ハンドル」、「USERオブジェクト」、「GDIオブジェクト」にチェックを付けてOKをクリックする
 
ハンドル、USERオブジェクト、GDIオブジェクト

 これで、ハンドル数、USERオブジェクト数、GDIオブイェクト数がプロセス毎に現在どれだけ使用されているか一目で分かります。

.net で注意が必要なのは、リソースを消費する画面つまりFormやDaialogのように画面表示するオブジェクトです。画面に表示されるということは、リソースを消費しOSが画面上に表示を行なっているわけです。

.netでリソースを開放する方法

 .net ではリソースの開放はdisposeで行います。記述方法は2種類あります。私が好きなのは後者です。

分かりやす方法

画面オブジェクトに対して直接disposeを記述します。ファイルアクセスを例にすると下記のような記述になります。

public void Func() {
    FileStream fs = new FileStream("test.txt", FileMode.Read);
    try {
        StreamReader sr = new StreamReader(fs);
        try {
            // 処理する
        }
        finally {
            if (sr != null) {
                sr.Dispose();
            }
        }
    }
    finally {
        if (fs != null) {
            fs.Dispose();
        }
    }
} 
参考サイト:C# Tips -usingを使え、使えったら使え(^^)-


漏れがなくとても美しい記述スタイル

using句を利用した記述方法、下記の記述を見ても分かる通り、とてもスッキリしています。でもリソースを開放する命令であるdisposeの記述はいらないのか?と疑問に思いますよね。

using句ブロックを抜ける際に、using句で生成したオブジェクトに対してdisposeを勝手に実行してくれるのです。記述漏れを防ぎながら、コードもスッキリしているのでusing句はとても気に入っています。
public void Func() {
    using (FileStream fs = new FileStream("test.txt", FileMode.Read)) {
        using (StreamReader sr = new StreamReader(fs)) {
            try {
                // 処理する
            }
            catch () {
                // 例外処理
            }
        }
    }
}
参考サイト:C# Tips -usingを使え、使えったら使え(^^)- 

まとめます。.netはメモリを自動開放してくれるがリソース開放は明示的に記述する必要があります。後からハマる前にコーディング規約にしっかりとリソース開放してくれるusing句の記述を徹底し、安全なアプリケーションが出来上がることを願います。

2013年6月3日月曜日

firefoxオススメアドイン|Google Choromeから乗り換えた理由

とある事情から昔使っていたfirefoxを再び使い始めました。と言うのも、私の使っているノートパソコンは、購入から6年程経っており、ハードディスクの増設、メモリの増設、OSのバージョンアップをして本体は買い換えずにいます。


昨今のウルトラブックと比べると巨大なノートパソコンですが、持ち出ししなければ問題なく使えています。


ここ最近「メモリを消費しないブラウザはどれ|パソコンが重たい」の記事でも書いたのですが、インターネットで調べ物をする際に、複数のサイトの記事を横断的に見比べたり、比較検討したい場合、どうしても複数ページを同時に開いてしまいます。

そうすると、私が以前愛用していたブラウザGoogle Chomeの唯一の弱点であるメモリ使用量の多さが、深刻な問題を引きしてしまい、貧弱なパソコンでは物理メモリの上限に直ぐに到達していまい、ありえない程のレスポンスが悪くなっていました。


2013年6月2日日曜日

Bloggerで記事タイルの後ろにブログタイトルを表示する方法


ブログに少し長めの記事タイトルを付けて投稿して、検索エンジンの検索結果を見てみると
あれ、記事タイトルの先頭に「ブログタイトル:」が勝手に付いていて、肝心の記事タイトルが途中で欠けて…となってしまったことはありませんか。

記事タイトルが途中から欠けてしまうと、せっかく考えた記事タイトルが意味不明になってしまいせっかく検索してくれたユーザに伝わりませんね。

bloggerのデフォルトでは、記事タイトルの先頭にブログタイトルが付いてしまう
検索エンジンの検索結果

実は、各種ブログサービスによって検索結果に表示するタイトルが異なっているのです。

「ブログタイトル」+「記事タトル」だったり
「記事タイトル」+「ブログタイトル」だったり
間に”|”が入ったり”:”が入ったりしています。

私が愛用しているBloggerですが、デフォルトのままだと、残念ながら「ブログタイトル」+「記事タイトル」で検索結果に表示されてしまいます。記事タイトルは営業マンと言われるぐらい重要な箇所なのに、途中で欠けてしまうなんて勿体無いですよね。


Bloggerで記事タイトルの後ろにブログタイトルを表示するには


Blogger管理画面で「テンプレート」をクッリクします。テンプレートの「HTMLの編集」をクリックします。




すると次のようなHTML編集ページが表示されるので、Ctrl+Fで「<title><data:blog.pagetitle/></title>」を検索します。

bloggerのテンプレート編集画面(記事タイトルの設定箇所)
HTML編集ページ

この<title><data:blog.pagetitle/></title>の部分を次のように書き換えます。

<b:if cond='data:blog.pageType == "item"'>
<title><data:blog.pageName/> - <data:blog.title/></title>
<b:else/>
<title><data:blog.pageTitle/></title>
</b:if>

これで無事に「記事タイトル」+「ブログタイトル」になりました。


2013年6月1日土曜日

メモリを消費しないブラウザはどれ|パソコンが重たい


パソコンでネット検索している時に、急に動作が重たくなってパソコンの反応が遅くなったことはありませんか。

パソコン動作が遅くなる原因はさまざまありますが、その中で最も動作を遅くする要因は、ディスクアクセスです。ディスクIOが発生する操作が最も処理速度を低下させます。

でも、ブラウザでページを見ているだけ、ファイルを開いたり、ファイルの保存もしないけど何の関係があるのと思いますよね。実は、パソコンのメモリの資料とディスクIOには関係性があるのです。

最近のブラウザは、タブブラウザが主流ですので、興味のあるページをどんどんタブで開いて、ページの読み込みが完了したら、タブを見るような使い方をすることが多いです。

タブを1ページ増やす毎に、メモリ使用量が増えていきます。そして、パソコンに搭載されているメモリを使い果たしてしまいます。それでも、パソコンは動作を継続するために、メモリに展開している一部の情報をディスクに書き込んだり読み込んだりして、実際のメモリ量より多いメモリ使用量で動作できるように出来ています。

メモリ使用量の使いすぎが、ディスクIOを引き起こし、動作の急激な遅延を引き起こすのです。メモリアクセスの速度と、ディスクアクセスの速度は、桁が違うほどの差があります。

メモリ使用量の対策

メモリ使用量が原因であれば、対策は単純です。物理的に搭載メモリ量を増やすか、メモリ使用量を減らすかどちらかです。物理的にメモリを増やすのが理想的ではありますが、直ぐに取り組める対策ですし、費用も発生します。また、お持ちのパソコンで増やせるメモリ量にも限界があります。
今すぐ取り組める対策は、メモリ使用量の削減です。

なるべくメモリを使用しないように使う

  • ブラウザで複数のタブページを開きっぱなしにしない
  • 直ぐに使わないアプリケーションは終了する
  • 不要な常駐アプリケーションがあれば、起動しないようにする

メモリをなるべく使用しないアプリケーションを使う

今回は、なるべくメモリを使用しないでサクサク動作するブラウザはどれなか比較してみます。
現在、私はGoogle Chromeを使用しているのですが、調べ物をするのにたくさんのページを開いておいて各ページを串刺して眺めるような使い方をしたいのですが、直ぐにメモリ使用量が物理メモリの上限に達してしまい、レスポンスがありえない程遅延してしまいます。

この問題を何とか解決するために、メモリ使用量が少ないブラウザを見つけたかったのです。

主要なブラウザには、Google Chrome、IE、FireFox, Operaがあります。
いきなり結論です。メモリの使用量が最も少ないのはFireFoxです。スペックの低い、メモリ搭載量の少ないパコソンで複数のページをブラウジングしたい場合は、FireFoxが良さそうです。1つだけ物足りないのが、タブを1つ開く際のスピードです。Google Chromeの2倍程かかってしまうため、明らかに遅くなったように感じます。ただし、メモリ使用量の上限に達した際の遅延から比べれば微々たるものです。

Google Chromeは、メモリ使用量が多いことを除けば、最も快適に動作するブラウザなので、恒久措置としては、メモリ搭載量が潤沢がパソコンでGoogle Chromeを使うのが最も理想的ですね。

参考サイト:主要ブラウザのスピード対決・2013年冬!(Chrome 24、Firefox 18、IE 10、Opera 12.12)


スポンサードリンク