タグ

hackとphpに関するkoyhogeのブックマーク (19)

  • 「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita

    0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 ... 0 time_nanosleep <internal>:-1 1 PhpProfiler\Lib\Loop\LoopMiddleware\NanoSleepMiddleware::invoke /home/sji/work/php-profiler/src/Lib/Loop/LoopMiddleware/NanoSleepMiddleware.php:33 2 PhpProfiler\Lib\Loop\LoopMiddleware\KeyboardCancelMiddleware::invoke /home/sji/

    「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita
    koyhoge
    koyhoge 2022/02/18
    ローレベルPHPというあまり開拓されていないジャンルw
  • プログラミングHHVM Hack 執筆しました - よねのはてな

    こんにちは、5月なのに真夏のように暑いですね🌞日発売のプログラミングHHVM Hackというを執筆しました 以前、Hackがリリースされた直後に出したよりもボリュームが多く300ページ近い量になっていますのでHHVM Hackに少しでも興味がある方は是非手にとって読んでみてください。 そして、そろそろPHPからHHVMに移行してみようかなという方は是非実践してみてください。 Amazon Kindle プログラミングHHVM Hack 作者: 米林正明出版社/メーカー: 技術評論社発売日: 2017/05/22メディア: Kindle版この商品を含むブログを見る Gihyo Degital Publishing gihyo.jp 書籍目次 1章 プログラミングHackとその環境構築 1.1 プログラミングHackとは 1.2 環境構築 2章 Hackの特長と構文 2.1 Type

    プログラミングHHVM Hack 執筆しました - よねのはてな
    koyhoge
    koyhoge 2017/05/22
    とりあえず買ったw
  • PHP による hello world 入門 | 東北ギーク

    知る者は言わず、言う者は知らず — 老子 世界で最も有名なプログラムの 1 つに、 hello world というものがあります。 <?php echo 'hello, world'; 出力先に対して「hello, world」という 12 字を書き込むだけの単純なプログラムで、プログラミング言語やライブラリの利用例を最小限の形で示すものです。 この記事ではメジャーな Web プログラミング言語の 1 つである PHP 処理系が、hello world をどのように実行するのかについて、簡単に解説します。 以下の 4 節で構成されています。 「PHP スクリプト実行の大体の流れ」は実行時の概略を箇条書きでまとめたものです。 「SAPI」では、PHP 処理系の起動のされ方についての基礎知識を解説します。 「Zend Engine とオペコード」は PHP 公式処理系の仮想マシンの命令と、PH

    PHP による hello world 入門 | 東北ギーク
    koyhoge
    koyhoge 2015/06/19
    PHPがどのように動いているかを解説した力作。
  • PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...

    使える言語の幅を広げたいと思ってPHP カンファレンス 2014に参加してきました。徳丸さんの「安全な PHP アプリケーションの作り方 2014」は改めて自分のセキュリティの知識を確かめるのに大変有意義だったのですが、何より感動したのが Facebook の Paul Tarjan による「HHVM + Hack == PHP++」のセッションでした。 すごく簡単に僕が理解した限りで HHVM/Hack を紹介すると、HHVM とは PHP の処理系の一つの実装です。その特徴は JIT コンパイルにより超高速になっていることに加え、圧倒的な魅力は PHP の Extension(C 拡張ライブラリ)の多くが実装されていて PHP のメジャーなフレームワークが問題なく動作するということです。つまりもう実践で戦えるということ。そして、Hack というのは HHVM が処理できるもう一つの言語

    PHPカンファレンス2014でHHVM/Hackの話を聞いて感動した - As a Futurist...
    koyhoge
    koyhoge 2014/10/12
    裏のセッションのモデレータをしていたので聴けなかったけど、動画アーカイブを見ようと強く思った。
  • PHP: phpng

    This page gives short information about development state of a new PHP branch based on refactored Zend Engine. The phpng branch has been merged into master and has been used as the base for PHP 7.0 Some technical implementation details are available at phpng-int. Information for extension maintainers at phpng-upgrading. Slides from a talk at ZendCon-2014 phpng-php7.pdf Note: For anonymous checkout

    koyhoge
    koyhoge 2014/05/06
    Dmitry StogovがLLVMベースのJITコンパイラをOPCacheに突っ込んで、さらにZend Engineのリファクタを進めた結果、2割程度速度が上がったそう。
  • http://atnd.org/events/49307

    http://atnd.org/events/49307
    koyhoge
    koyhoge 2014/04/02
    なんかやたらとHackが熱いですねw
  • http://atnd.org/events/49258

    koyhoge
    koyhoge 2014/03/31
    参加申し込みしました。
  • PHP extensionとZend extensionの違い - hnwの日記

    PHPのextensionにはPHP extensionとZend extensionという2種類があります。これらの違いが何なのか、PHPの実装レベルから調べてみました。 PHPのextensionについて PHPのextensionには2種類が存在します。これらは次のようにphp.iniでロード指定する構文が異なります。 extension=extension.so zend_extension=/path/to/extension.so 稿では「extension=」でロードされるものをPHP extension、「zend_extension=」でロードされるものをZend extensionと呼びます。これらはPHPのソースコード中ではそれぞれmoduleとextensionと呼ばれているので注意してください。 代表的なZend extensionとしてはXdebugとZend

    PHP extensionとZend extensionの違い - hnwの日記
    koyhoge
    koyhoge 2013/07/24
    「Zend extensionでないと出来ないことが何なのか、結局わかりませんでした。」w
  • no globals

    config.m4 p?ݙ6V �i3�6V PHP_ARG_ENABLE(noglobals, for noglobals support, [ --enable-noglobals Include noglobals support], yes, yes) PHP_NEW_EXTENSION(noglobals, noglobals.c, $ext_shared) noglobals.c �|��6V 0�ܙ6V #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <php.h> #define NOGLOBALS_VERSION "0.0.1-dev" #define DELETE_AUTO_GLOBALS(name) zend_hash_del(CG(auto_globals), name, sizeof(name))

    no globals
    koyhoge
    koyhoge 2013/04/25
    わはは、さすが速い。でもそういうことをやりたいんじゃない気がするw
  • オレオレPHPのつくり方

    2. 自己紹介 関山 隆介 ((TTwwiitttteerr @@rrsskkyy)) 主な使用言語は PPHHPP,, CC,, OObbjjeeccttiivvee--CC,, JJaavvaaSSccrriipptt PPHHPPの改造が生業趣味です 画像処理とか圧縮アルゴリズムと かに興味あ�ります

    オレオレPHPのつくり方
  • http://kwatch.houkagoteatime.net/blog/2012/12/25/php-generator-4/

  • よみがえるQIQ | チラシのうら

    別エントリで実装等について書く前に、これまでの経緯のまとめ。 以前のエントリ で↓のように書いていたのだが、 Scalaライクなミックスイン はエイプリルフールネタです。申し訳ない。 気で取り組みたいですが、なかなか難しいですね。 求む、フルタイムでやらせてくれるお大尽。 プログラミングをしない人にPHPを少しわかりやすくする関数 “not” #phpadvent2012 に触発されて よーし、おじさんnot演算子をZend Engineに追加しちゃうぞー / “プログラミングをしない人にPHPを少しわかりやすくする関数 “not” #phpadvent2012 - 頭ん中” htn.to/HaqbQq 12月 14, 2012と言ってしまい、その流れでphp-srcをforkしてnot演算子を実装したり、until文/unless文を実装したりしているうちに気分がノってきて、Synfo

    よみがえるQIQ | チラシのうら
    koyhoge
    koyhoge 2012/12/21
    動的にミックスインできちゃう。これメインに入らないかなー。
  • guro_chanの日記 » PHPでmemory_limitを0に設定してPHPスクリプトを動作しないようにしたかった

    ホーム > linux, プログラム > PHPでmemory_limitを0に設定してPHPスクリプトを動作しないようにしたかった php.ini や .htaccess で memory_limit 0 などと設定すればスクリプトがまったくメモリを確保できなくなってすべてのPHPスクリプトが動かなくなるように思っていた。のに実際は思惑と異なり Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 198529 bytes) in /home/guro/public_html/test/a.php on line 8 のように最低でも 262144 バイトのメモリが確保されてしまう。なぜこういうことになるのかたいへん気になるので grep コマンドでPHPのソースコードを舐めるように検索

  • PHPにメッセージキューとそれを扱う糖衣構文を実装してみた (「PHPのすべらない話 #3」) - moriyoshiの日記

    Goにできて、PHPにできないはずはない!というわけでやってしまいました。まあ、これにメッセージキューとメッセージスロットを足しただけなんですが。 <?php function sub($i, $ch) { for (;;) { $a = <- [$ch]; printf("%d:", $i); var_dump($a); } } $ch = thread_message_queue_create(); for ($i = 0; $i < 10; $i++) { thread_create('sub', $i, $ch); } $i = 0; for (;;) { [$ch] <- $i++; usleep(50000); } ?> 見て分かるように、 [$ch] <- $i++;こんな感じにメッセージの送信を、 $msg = <- [$ch];こんな感じにメッセージの受信を書くことができ

    PHPにメッセージキューとそれを扱う糖衣構文を実装してみた (「PHPのすべらない話 #3」) - moriyoshiの日記
  • phpを高速化する computed goto : DSAS開発者の部屋

    前回 インタプリタ型言語を高速化する computed goto で紹介したcomputed gotoを、「phpでも使えないの?」という声が社内であったので、 php のソースコードを見たところ、特定のビルド手順で php でも computed goto が使えることが判りました。そのビルド手法とベンチマーク結果を紹介しておきます。 php の VM のソースコードは、phpソースパッケージ中の Zend/ というディレクトリの中にあります。zend_vm_で始まる幾つかのファイルのうち、 zend_vm_execute.h というファイルが命令ディスパッチが実装されているファイルで、このファイルは zend_vm_gen.php というスクリプトで生成されています。そして、 zend_vm_gen.php のオプションで、命令ディスパッチの方法を選択できます。(phpのビルドにphp

    phpを高速化する computed goto : DSAS開発者の部屋
  • PHP5.3のクロージャの謎というかPHPだから謎なんてない!な挙動 - moriyoshiの日記

    zend_compile.c を読んでいて気づいた。 <?php $b = 2; $a = function() use ($b) { if (false) { static $b = 4; } var_dump($b); }; $a(); ?> これの結果が int(4)となる。摩訶不思議。 みんな大嫌いなクロージャのuseキーワードは、5.1から導入されたcompiled variables(CV)という、ローカル変数アクセス高速化のための機構の実装が腐っているために導入されたといっていいと思う。こいつはオートグローバルを除くすべてのvariableに対するアクセスを、たとえそれがreadのみだったとしてもCV化してしまう。来ならassignmentが行われるまではfree variableとして扱える余地を残しておくべき。 ちなみにcompiled variableについてはSar

    PHP5.3のクロージャの謎というかPHPだから謎なんてない!な挙動 - moriyoshiの日記
  • QIQの設計と実装 - 讃容日記

    QIQエクステンションがやっていることについて。 PHPというかZend Engineでは、コンパイラとエクゼキュータが関数ポインタになっており、それぞれファイルの内容から実行コードを生成するzend_comiple_file、文字列から実行コードを生成するzend_compile_string、実行コードに対応するハンドラを呼び出すzend_executeが定義されています。また、それらのデフォルト実装としてcompile_file()、compile_string()、execute()があります。 言語としては良いか悪いかは別にして、堅くも柔らかくもない独自のポジションにあるPHPですが、コアのZend Engineはコンパイラやエグゼキュータが差し換えられたり、実行時のフックが追加できたりと、実は拡張性に富んでいるのです。でもマルチスレッドと演算子オーバーローディングだけは勘弁な!

    QIQの設計と実装 - 讃容日記
  • Zend Engineをハックしてみた - 讃容日記

    勢いに任せてVM・構文解析器・コア関数をハックして以下の機能を実装してみました。 無名関数リテラル (PHPの仕様上、実際は自動で名前が割り振られ、リクエスト終了まで関数は生き続ける) 角括弧による配列リテラル Callable Object php-5.2.5-rsky-071126.patch 最初のリリース。(PHP 5.2.5用パッチ) php-5.2.5-rsky-071126-2.patch 角括弧の連想配列リテラルでは => でなくコロンを使うように変更。 php-5.2.5-rsky-071127.patch 無名関数内で無名関数を定義できなかったのを修正。 php-5.2.5-rsky-071127-2.patch メモリリークを修正。 php-5.2.5-rsky-071127-3.patch ReflectionFunction::exportで落ちるのを修正。 Ze

    Zend Engineをハックしてみた - 讃容日記
    koyhoge
    koyhoge 2007/11/27
    すげえ
  • ニコニコ動画みたいなものを作ってみるテストと問題点

    ニコニコ動画みたいなサービスを作るのがどれくらい難しくて、どれくらい大変なのかを確認してみるテストと、それによりわかった問題点をあげてみます。 テスト用にサンプルサイトとして作ってみたのは、以下の2つのページです。 ニコニコ動画みたいなものを作ってみるテスト 動画最新情報 解説はこの後に続きます。 ニコニコ動画(β)終了に見るWeb2.0マッシュアップ時代への警鐘に書いたように、ニコニコ動画は一旦終了してしまいました。 その後、各地でニコニコ動画の問題点や開発裏話などが語られています。 その中で、いくつか気になったものがありました。 まず始めに、メルルーの秘宝とニコニコ動画と四畳半社長: ニコニコ動画と長尾研究室と僕から。 そこでYoutubeなど既存のサーバーからデータだけ拾ってくる、というアイデアが生まれて、この実証実験はドワンゴの中野君が数時間で行いました。 プロモーションのために2

    ニコニコ動画みたいなものを作ってみるテストと問題点
  • 1