のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,652,626人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレPHP関連の書籍 第7版

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
751 : nobodyさん - 2012/08/19(日) 14:23:07.41 ID:??? (-23,-30,-101)
>>748
違うだろw

元々はPHPの知識が、他の言語に応用が効くかという話

> 712 名前:nobodyさん[sage] 投稿日:2012/08/18(土) 16:59:50.77 ID:???
> PHPを構成している言語機能はPHP特有じゃなくて、
> 他の言語でも見られるものがほとんどなのに、
> 他の言語で役に立たないというのは理解できないを通り越して
> 間違ってるだろうな。
752 : nobodyさん - 2012/08/19(日) 14:28:53.43 ID:??? (+35,+29,-62)
>>750
すっかり、PHPとは関係ない話になったなw
デザインパターンの話じゃないか。

言語関係なくマルチプロセス環境ではシングルトンは複数できてしまうもの
シングルトンというのは、同一のプロセス内において
オブジェクトが一つという定義であり、
PHPでも同一のプロセス内でオブジェクトを一つにできる。
753 : nobodyさん - 2012/08/19(日) 14:51:34.07 ID:??? (+28,+29,-53)
PHPではマルチスレッド言語の感覚でシングルトンは使うなということ。
馬鹿なバグの原因になる。
当たり前だが、ネットでころがっている他の言語の説明は鵜呑みにするな。
754 : nobodyさん - 2012/08/19(日) 14:52:42.96 ID:??? (+25,+29,-3)
>>716
こいつはwww 何言っているの?
755 : nobodyさん - 2012/08/19(日) 14:59:30.71 ID:??? (-24,-29,-57)
>>753
シングルトンって基本はシングルスレッドだぞ。

マルチスレッドの場合、通常のシングルトンコードに
マルチスレッド対応のコードを追加するが。
お前、実はわかってないだろw
756 : nobodyさん - 2012/08/19(日) 15:04:22.48 ID:??? (-25,-30,-114)
探せばいろいろ出てくると思うけど、

http://www.02.246.ne.jp/~torutk/cxx/designpattern/singleton.html
> GoF本の実装の問題
>
> GoF本の実装例のコードが抱える問題点を列挙します。
>
> マルチスレッド安全性がない
> if (instance == 0) {     // (1)
>   instance = new Singleton; // (2)

この人も書いているように、オリジナルのシングルトンは
マルチスレッド対応されてない。
757 : nobodyさん - 2012/08/19(日) 15:07:45.57 ID:??? (+34,+29,-58)
>>753
言ってる意味があべこべだな。

マルチスレッド言語では、シングルスレッド言語のような感覚で
シングルトンは使うな。馬鹿なバグの原因になる。

これが正解じゃないか。

PHPはシングルスレッド言語だから、安心して使っていい。
758 : nobodyさん - 2012/08/19(日) 15:29:04.86 ID:??? (+27,+29,-9)
>>755
お前、馬鹿じゃないの?シングルトン、公式サイトですら否定しているだろ
759 : nobodyさん - 2012/08/19(日) 15:31:34.09 ID:??? (-23,-25,-19)
>>757
PHPではシングルトンが複数できるがマルチスレッドの場合は事情が違うから確かにそのとおり。
PHPのシングルトンはマルチトンだからな。
760 : nobodyさん - 2012/08/19(日) 15:35:25.86 ID:??? (-15,-13,-12)
PHP公式サイトでシングルトンの意義疑っているから。
リソース共有しないPHPでは意味ないかもって。
761 : nobodyさん - 2012/08/19(日) 15:36:35.73 ID:??? (+7,+5,-11)
>>757
そうだよ。
PHPではシングルトンが複数できるからマルチスレッド言語では意味は違うような。
762 : nobodyさん - 2012/08/19(日) 15:39:50.78 ID:??? (+0,+4,-1)
>>756
Java言語だったらシンプルだよ。
763 : nobodyさん - 2012/08/19(日) 15:45:48.25 ID:??? (+22,+24,-11)
PHPのシングルトンはマルチトンという結論でおk

>>716
なんでスレッドセーフ強調しているわけ?
764 : nobodyさん - 2012/08/19(日) 16:05:36.48 ID:??? (+27,+29,-42)
結局、PHPでデザインパターンは学べないってことなんだよね
765 : nobodyさん - 2012/08/19(日) 16:12:16.59 ID:??? (+22,+29,-3)
いや、こうやって学べてるだろw
766 : nobodyさん - 2012/08/19(日) 16:14:18.21 ID:??? (+24,+13,-51)
>>763
いや、だから、プロセスが違えば
他の言語のシングルトンも、マルチトンになるんだよ。

嘘だと思ってるならやってみな。

CLIアプリでいいから、Javaでシングルトン作って、
そのプログラムを2つ以上実行して、
複数のプロセス間で、オブジェクトが一つなのか
複数なのか確認してみ。
767 : nobodyさん - 2012/08/19(日) 16:14:50.14 ID:??? (+24,+20,-22)
PHPで「マルチトン」ではないシングルトン実現のためには外部キャッシュシステムを使えばいいんだが、
外部キャッシュ使える環境ならPHP使う意味も無い。
768 : nobodyさん - 2012/08/19(日) 16:15:07.22 ID:??? (+29,+29,-34)
>>758
> お前、馬鹿じゃないの?シングルトン、公式サイトですら否定しているだろ

シングルトンの何を否定してるの?
シングルトンが意味ないってこと?
そりゃシングルトンの批判だろ?

769 : nobodyさん - 2012/08/19(日) 16:18:05.85 ID:??? (+31,+29,-4)
>>766
君何言ってるの?それ当たり前じゃん。
770 : nobodyさん - 2012/08/19(日) 16:18:09.36 ID:??? (+42,+29,-96)
>>767
PHPっていうか、マルチプロセス全般の話だよね。

マルチプロセスでシングルトンを使うには
確かに外部キャッシュシステムなんかを使えばいい。
memcachedとか。

でもそうすると、すべてのプロセスで共通のリソースを使うってことで
その部分がシングルポイントになりボトルネックとなる。
それではスケールしないシステムになってしまう。

つまり、シングルトンという仕組みそのものが、
時代遅れな設計。

そしてそのシングルトンを否定しているPHPは
将来を見据えた言語ということ。
771 : nobodyさん - 2012/08/19(日) 16:19:14.02 ID:??? (-26,-29,-47)
PHPの公式サイトではPHPにおけるシングルトン使用には疑問を呈されています。
772 : nobodyさん - 2012/08/19(日) 16:20:22.88 ID:??? (+24,+29,-8)
>>771
それは、シングルトンがスケールしない
時代遅れな設計だからだね。

さすがだ。
773 : nobodyさん - 2012/08/19(日) 16:23:35.75 ID:??? (+38,+29,-65)
>>770
だよね。
シェアードナッシングだからリソースを共有しない。
だからたとえ同じデータでも毎回データベースなどに取りにいけばいいし。
共有データのために一回のアクセスで済むところを何千回もアクセスすればいいんだよ。
774 : nobodyさん - 2012/08/19(日) 16:26:19.75 ID:??? (-21,-29,-75)
そう。リソースを共有できないため、データベースへ超絶アクセスだ。
シェアードナッシングを実現している
PHPの代表的なアプリとしてはOpenPNE。ついでWordPressなどがある。
これらは次世代型のシェアードナッシングアプリであるな。
775 : nobodyさん - 2012/08/19(日) 16:26:56.63 ID:??? (+22,+29,-17)
なんかネタスレになってきたwww
776 : nobodyさん - 2012/08/19(日) 16:29:37.91 ID:??? (+25,+29,-3)
あのーーー、リソース共有できたほうがよくね?
777 : nobodyさん - 2012/08/19(日) 16:33:11.05 ID:??? (+30,+29,-41)
>>774
データベースへ超絶アクセスする。
これをシングルトンで解決しようと考える奴はイケてない。

なぜなら負荷分散のために、アプリサーバーを
複数台構成にした時、シングルトンでは解決できないからだ。

つまりシングルトンは何も意味が無い。
これがシングルトンが否定されてる理由の一つ。
778 : nobodyさん - 2012/08/19(日) 16:33:54.08 ID:??? (+27,+29,-15)
スケールしないってどんな規模の話しだよ
779 : nobodyさん - 2012/08/19(日) 16:34:10.09 ID:??? (-21,-28,-25)
>>776
そのとおりだよ。

だからリソース共有のために
memcachedなどを使う。

シングルトンでは、リソース共有といっても
複数のスレッドで共有するのが限界で、
プロセスが違っていたり、サーバーが違っていたりした場合
共有できないからね。
780 : nobodyさん - 2012/08/19(日) 16:38:08.51 ID:??? (+38,+29,-47)
いやいやシングルトンなんて使わなくてもいいけど、
シェーアードナッシングってキツイくね?
君がいうアプリサーバーを複数台にしても
OpenPNE君とか悲惨だもんね。
複数台構成にする規模だとPHPを使う意味はないからね。
783 : nobodyさん - 2012/08/19(日) 16:40:48.72 ID:??? (-7,-5,-23)
facebookの失敗を見れば大規模ではPHPは使うべきでなない。
784 : nobodyさん - 2012/08/19(日) 16:42:04.98 ID:??? (+41,+29,-46)
>>780
> シェーアードナッシングってキツイくね?

きつかったとしてもやらないといけない。
シングルポイントがあれば、そこが一つダウンしただけで
サービス全体が停止してしまう。

最近のクラウドサービスは、シェーアードナッシングか
それに近い状態になってる。
785 : nobodyさん - 2012/08/19(日) 16:42:41.86 ID:??? (+22,+28,-16)
>>782
ルート権限がもてる環境でPHP使う意味なし。
はじめから高性能な言語を使えばよい。
786 : nobodyさん - 2012/08/19(日) 16:43:41.81 ID:??? (+30,+21,-10)
>>784
どうやってOpenPNEを軽くすればいいのですか?
複数台構成でも激遅ですが。
787 : nobodyさん - 2012/08/19(日) 16:44:45.69 ID:??? (+0,-3,-32)
>>784
PHPで構築されたクラウドサービスを教えてください。
研究してみます。
788 : nobodyさん - 2012/08/19(日) 16:45:15.07 ID:??? (-11,-4,-29)
>>783
そのFacebookがPHPを使って
言語よりもキャッシュサーバーが重要って言ってるんだが。

キャッシュがスケーラビリティに大きな役割を果たしている
http://www.publickey1.jp/blog/09/facebook.html
790 : nobodyさん - 2012/08/19(日) 16:46:49.60 ID:??? (+40,+29,-25)
>>786
まずどこにボトルネックがあるか調べる。
アプリ側か、データベース側か、
アプリ側であれば単純に増やせば良い。
791 : nobodyさん - 2012/08/19(日) 16:48:11.86 ID:??? (-24,-19,+0)
>>788
ごめん、それかなり古い。今はHadoop系。
792 : nobodyさん - 2012/08/19(日) 16:48:52.77 ID:??? (+23,+29,-8)
>>789
だから”元”お偉いさんで、
そいつが作ったサービスは
失敗したんだろうなw
793 : nobodyさん - 2012/08/19(日) 16:52:30.43 ID:??? (+43,+29,-49)
>>790
そんなことは調べているし、実践している。
しかしつまるところ、「シェアードナッシング」だから遅いことがわかっている。
アプリが原因とも言えるがより深い原因はリソース共有できない言語に由来するよね。
こういう場合はどうしたらいい?
798 : nobodyさん - 2012/08/19(日) 16:58:02.99 ID:??? (+37,+30,+0)
>>793
> しかしつまるところ、「シェアードナッシング」だから遅いことがわかっている。

まずお前の勘違いから正していこうか。
あべこべなことを言ってるから話が進まない。

一言で言えば、シェアードナッシングは高速なGoogleが採用している設計

http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%82%A2%E3%83%BC%E3%83%89%E3%83%BB%E3%83%8A%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3

シェアード・ナッシング・モデルはスケーラビリティの観点からウェブ開発において頻繁に用いられる。
Google社が例示したように、純粋なシェアード・ナッシング・モデルシステムは廉価な
コンピュータを追加することによりほぼ無限にスケールすることが可能である。

それはシステムの処理速度を低下させる単一のボトルネックが無いからである。
Google社はこれをshardingと呼んでいる。典型的なシェアード・ナッシング・モデルシステムにおいては、
データは異なるデータベースの多数のノードに分散されるか(この場合ユーザやクエリごとに異なるコンピュータを割り当てる)、
あるいは何らかの同期化プロトコルを用い、全てのノードにアプリケーションデータのコピーを持たせる形をとる。
これはdatabase shardingと呼ばれるものである。
800 : nobodyさん - 2012/08/19(日) 16:59:43.00 ID:??? (-15,-28,-51)
>>790
OpenPNEってアクセスするだけで相当なSQLを発行するって知っている?
デフォルトでインストールしてデバッグモードで調べるといいよ。
複数台構成にしてもあれだけSQLが多かったらどうにもならないよ。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について