IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 メモリリーク。一言でプログラマを死に追いやる恐怖の言葉。C/C++の世界ではmallocしたのにfreeしないとかのケアレスミスでよく起きていた問題です。その後、ガベージコレクタが掃除してくれるプログラミング言語が増え、一部の言語で循環参照に気をつけるぐらいであまり気にしなくても良い的な風潮になっています。 というものの、そうとも言ってられなくない状況も増えてきています。クラウドのスケールアウトブームも一段落というかコモディティ化し、go言語で再び性能向上方面に関心が寄せられたり、日本でErlangの勉強会が満席になったり、スケールアウトから再びスケールアップ方面に話題が移りつつあるのを感じます。長時間稼働のサーバで、スケールアップしてさらに数多くのリクエストを大量に受けるよう
iPhone向けのウェブアプリでJavascriptを使うと、メモリリークを調べ方がちょっとわからなかったので、まとめてみました。 1) iPhoneのシステム状態を調べるにはMacとInstruments(Xcodeの付属ソフト)が必要です。 また、iPhoneのSafariのメモリリークを調べることができない(?)ため、UIWebViewを実装したダミーアプリを制作しておきます。 2) iPhoneをMacに繋ぎます。 3) MacでXcodeを立ち上げて、ダミーアプリを「ビルド」実行後、「実行>パフォーマンスツールを使って実行>Leaks」を選択します。 4) Instrumentsが起動するので、「Record」をクリックするとメモリリークチェックをしながらiPhoneのアプリが起動します。 メモリリークの見方がちょっとわかりにくいですが、ブレークポイントなどを駆使しながらタイミ
はじめに iPhoneアプリを開発するにはメモリ管理は本当に重要です。メモリリークが起きると、アプリケーションたちまちクラッシュを起こしてしまいます。 それで前々からメモリリークを調べる方法を調べていたのですが、Clang Static Analyzerが出てきました。 でもこれ、ターミナルどうのこうので初心者の僕にはなんだか難しそうで、、、諦めていたんですが、XCodeにClang Staticエンジンが搭載されたらしいので、設定方法を紹介します。 設定方法 ①プロジェクトからプロジェクト設定編集をクリック ②ビルトタブを選んで静的アナライザに✔を入れます。 ③Buil and Analyze で解析します! たったこれだけで、メモリリークを調べる事ができます。 初めて当ブログに訪れた方や何度か当ブログにお越し頂いている皆様。もしブログの内容が気に入って頂けましたらRSSリ
JavaScriptiPadのSafariは、2カ所から画像のメモリに接続するとリークしガベージされない。iOS、3.2、4.2.1、どちらも起きる。 例えば、2つのimg要素が同じsrcを設定すると、その画像リソースはページのリロードまで2度と離されない。以下のサンプルは、画像ロードが途中で停止し、以降は新しい画像を表示できない。デスクトップのブラウザのように、別のimg要素でプリフェッチして、他のimg要素で表示する手法は使えない。 // imagesにsrcのリストを用意 var elmImage = document.body.appendChild(document.createElement('img')); var elmOther = document.createElement('img'); (elmImage.onload = function(){ documen
1. クラスローダ リークパターン なにそれおいしいの? Takayoshi Kimura Senior Software Maintenance Engineer, JBoss Global Support Service Red Hat
メモリーリークに関する覚え書き メモリーリークとは コンピュータの動作中に、使用可能なメモリ容量が、だんだん減っていく現象。 OSやアプリケーションソフトが、処理のために占有したメモリ領域を、解放しないまま放置してしまうために起きる。 メモリーリークパターン(以下のタイプを考察) ドキュメントツリーに属さないノードに、イベントを貼り付けた場合。 DOM プロセッサが管理しているオブジェクトと、スクリプトエンジンが管理しているオブジェクト、が混在した場合 いわゆるクロージャが、その混在を招くパターン(これが難解) メモリーリークに該当しないもの DOM プロセッサが管理している変数が、グローバル変数である window, document は、グローバル変数なので、該当しない。 ドキュメントツリーに属さないノードに、イベントを貼り付けた場合 ページを破棄するときに、ドキュメントツリーのノード
Perl5.8まではクロージャをネストした場合にメモリーリークが発生するという問題がありましたが、5.10.0では解消されているようです。 例えば以下のようなソースを実行すると use strict; use Devel::Leak::Object qw(GLOBAL_bless); package Foo; sub new { my $class = shift; return bless { id => shift }, $class; } sub DESTROY { my $self = shift; print "Destroy @{[$self->{id}]} $self\n"; } package main; sub main ($) { my $j = shift; print "# MAIN BLOCK START\n"; my $foo = Foo->new( $j );
Ext - A foundation you can build on Extは17日(米国時間)、Ext JSの最新版となるExt JS 3.1を公開した。Ext JSはJavaScriptで開発されたWebアプリケーションフレームワーク。軽量で高い拡張性を提供しながら、デスクトップエクスペリエンスと近い滑らかな動作を実現している。 3.1は新機能の提供以外にパフォーマンスを改善することに力が置かれている点が注目される。すべてのコンポーネントでDOM参照を適切に削除するようにリファクタリングを実施されたほか、IEに存在しているJavaScriptオブジェクトの扱いに関する問題を回避する処理が追加されている。長期に渡ってWebアプリを実行したケースで50倍を越えるメモリ容量の消費削減が確認されたと記載がある。 500操作後のDOM要素数の違い Ext JS 3.0 vs 3.1 on IE
Archived MSDN and TechNet Blogs 2/7/2020 2 minutes to read MSDN and TechNet blog sites have been retired, and blog content has been migrated and archived here. Archived blogs are grouped alphabetically by the initial letter of the blog name. Blogs and blog posts can be searched by their names, using the Search box at the top of the page. Actively updated blogs have been moved to other blog sites,
Memory ProfilerはMozilla Labsの実験的なプロジェクトの一つで、Webページのメモリ使用状況を調査するツールを提供するものだ。 長い時間にわたってWebブラウザに常駐させておくタイプのWebアプリケーションが増えつつある昨今、こうしたツールに対する需要も高まっているといえるだろう。だが、Atul Varma氏が『Web Application Memory Profiling, Take Two』で説明しているように、今年7月に公開された最初のプロトタイプには次のような欠点があった。 動作が遅い FirefoxのJSヒープ全体を表示していたが、そこにはWeb開発者にとってさほど役に立たないFirefoxの内部オブジェクトがたくさん含まれていた Firefoxがフリーズし、別のブラウザからローカルのWebサーバーにアクセスすることも含め、セットアップがやや大変だった
27 July 2009 [Sorry, this is a technical post. Non-programmers should probably skip this and listen to some nice accordion music instead.] Occasionally one has to defeat the same-origin policy and exchange data from a 3rd party server. The least ugly hack is the badly named JSONP technique. Basically you create a script tag, append it to head, then it will fetch a remote JavaScript file and execut
JavaScript Memory Leak Detectorのver. 2が出てたのでリンク修正 前から気になっていたツールを実際に使ってみたのでメモ。 javascriptでメモリリークしている箇所の検出はJavaScript Memory Leak Detector、IEの使用メモリのチェックはProcess Explorerを使う。インストールはそれぞれ次のリンクを参照。どちらもwindowsの再起動はいらないって書いてあるけど、私は再起動しないと使えませんでした。 GPDE Team Blog : JavaScript Memory Leak Detector (v2) http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector_v2.aspx GPDE Team Blog : JavaScript Memor
今日はIEのメモリリーク対策に注力した - SEの行き着くところ…の続き。ついについに解決した。解決の糸口(というか答え)はPrototype.jsにしっかりと書いてたやんか! // avoid memory leak in MSIE: clean up this.transport. onreadystatechange = Prototype.emptyFunction; どうやらDOMオブジェクトだけでなく、new ActiveXObject('Msxml2.XMLHTTP')もメモリリークする模様。(確かに考えてみりゃそっちの方がリークしそう・・) ここでポイントだったのはonreadystatechangeに「null」を入れても効果がなく、関数外で定義された(できればグローバルスコープの)空関数を定義する、というところやった。(上のコードでいうとPrototype.emptyF
Finally, the alternative fix for IE6's memory leak is available Update:6/9/2008 One of my fellows, Chris Heilmann helped to post this page to AJAXIAN.com and had got a lot of comments and feedbacks, which I really appreciate it. Before you start to read this page, I assume that you do have a IE6 browser available and test these cases your self like I always did. Of course, you should know memor
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く