php の memory_limit の制限

ネタメモ:
php の memory_limit は K、M、Gの単位で設定できる。
メモリをいくらか使う処理の中で、処理に余裕を持たせるため、memory_limit を 2G として設定した。
2G にした理由は ini_set('memory_limit', '1G'); と指定したにもかかわらず、ini_set() の設定が有効に働かず、デフォルトの 128MB で動作していたため。

2G に指定した際の php の設定情報では
$ php -i | grep memory_limit
memory_limit => 2G => 2G

となっていた。
プログラムを実行しようとすると
PHP Fatal error: Allowed memory size of 262144 bytes exhausted at /usr/local/src/php-5.2.6/Zend/zend_opcode.c:48 (tried to allocate 311296 bytes) in /home/user/bin/foo.php on line 476
で止まる。
プログラムの476行目を見ても何の変哲もないただの処理。 if( $value === FALSE) といった処理。

仕舞いには
$ php -l /home/user/bin/foo.php
を実行しただけで
Error parsing /home/user/bin/foo.php
を返し、エラーログには同様のエラーを表示していた。

現象が掴めないままいると、memory_limit に指定できるメモリ上限は 1G までであることが判明。
それ以上を指定しても、phpのシステム内で決定されている最小メモリ数(256K)に自動的に割り当てられるということらしい。

ちなみに 使用していた PHP のバージョンは PHP 5.2.6 (cli)

iPhone OS 3.0 提供開始!

ついに一般向けアップデート提供開始来ました!

その内容は既に発表済みでありますが、以下のものとなっているようです。


iPhone OS 3.0 ソフトウェア・アップデート

このアップデートには、以下の機能を含む、100 以上の新機能が含まれています:

• カット、コピー&ペースト、シェイクによる取り消し
• 主要アプリケーションにおける横表示キーボード
• SMS/MMS アプリケーションの強化
- 写真、連絡先、オーディオファイル、および位置情報を MMS で送受信*
- メッセージを 1 つずつ、または複数まとめて転送および削除
• メール、カレンダー、メモ、および iPod 内の検索機能を追加
• iPhone 全体を Spotlight 検索
• カレンダーで CalDAV およびカレンダーの登録をサポート
• Safari の改良
- パフォーマンス
- HTML 5 をサポート
- オーディオおよびビデオの HTTP ストリーミング
- ユーザ名とパスワードの自動入力
• 新しいボイスメモアプリケーション
• Mac または PC と、iTunes 経由でメモを同期
• USB および Bluetooth 経由でインターネットテザリング*
• iTunes Store からムービー、テレビ番組、オーディオブックをブラウズおよびダウンロード**
• ステレオ Bluetooth***
• Wi-Fi 自動ログイン
• 株価アプリケーションの強化
• アプリケーション、ミュージック、ムービー、およびテレビ番組のより詳細なペアレンタルコントロールオプション
• iTunes アカウントの作成およびログイン**
• YouTube アカウントのログインおよび、登録チャンネル、レート、お気に入りへのアクセス**
• シェイクでシャッフル
• 新しい言語、辞書、およびキーボード
• MobileMe で利用可能な“iPhone を探す”および“リモートワイプ”(登録が必要)**
• より多くの Exchange ポリシーをサポート
• Exchange のミーティングの招待を作成および送信
• サーバ上のメールを検索(Exchange Server 2007 およびサポートされている IMAP サーバ)
• LDAP カンパニーディレクトリを検索
• VPN オンデマンドおよび VPN プロキシをサポート
• 暗号化された構成プロファイル
• 暗号化された iTunes バックアップ
• 以下を含む、1,000 におよぶデベロッパ API:
- アプリケーション内での購入
- Apple Push Notification Service(プッシュ通知サービス)
- アクセサリサポート
- ピアツーピア接続
- 地図の埋め込み
- iPod ライブラリのアクセス
• 不具合の修正

このソフトウェア・アップデートと互換性のある製品:
• iPhone
• iPhone 3G
• iPhone 3G S

* iPhone 3G および iPhone 3G S のみ対応。お使いのワイヤレスプロバイダによるサポートも必要。
** 一部の地域や言語では利用できません。
*** iPhone 3G および iPhone 3G S のみ対応。

機能の説明と詳しい手順については、次の Web サイトでお使いの iPhone のユーザガイドを参照してください:
<http://www.apple.com/jp/support/manuals/iphone>

iPhone について詳しくは、次の Web サイトを参照してください:
<http://www.apple.com/jp/iphone>

お使いの iPhone の問題を解決する、または追加のサポート情報を確認するには、次の Web サイトを参照してください:
<http://www.apple.com/jp/support/iphone>

このアップデートのセキュリティに関する内容について詳しくは、次の Web サイトにアクセスしてください:
<http://support.apple.com/kb/HT1222?viewlocale=ja_JP>


目玉はコピー&ペースト、MMSサポート、Push Notification Service (アプリ経由でのポップアップ通知)、 メモとメールでのランドスケープ入力対応、Spotlight検索、テザリング機能などです。
テザリングについては残念ながら日本国内においてはソフトバンクが現時点で提供の予定なしとのことですが、MMSについては既存の携帯電話サービス同様に提供されるようで、メールアドレスも @softbank.ne.jp のアドレスを付与されるようです。
さり気なく Wi-Fi 自動ログイン機能や、オートフィル機能、YouTubeのアカウント連携、Bluetoothのプロファイルの追加などなど、便利そうな更新が含まれています。

最近作ったアプリの話

先日、コナミ社の提供している コナステ のダウンロードコンテンツゲームを1クリックで起動できるアプリを作り、公開した。 Ks Game Launcher  ( Github ) 作った理由として、インストール時に作成されたショートカットをクリックするとブラウザが起動し、ログインし...