1 名前:デフォルトの名無しさん [04/11/16 23:45:50] www.go-mono.com/ 前スレ pc5.2ch.net/test/read.cgi/tech/1020215602/
717 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 02:11:22 ] おいおい、LINQは無視できないぞ。WPFはいらないが。
718 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 02:41:30 ] だから.NET3.0とばして.NET3.5の機能を先に実装してるよ。C#3.0の文法も対応済み。
719 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 14:02:26 ] >>717 確かにLINQはいいね。.NET関係なく使えるいいツールになる。 >>706 Javaはスレ違いだが、 GCJとSunのクラスライブラリを組み合わせるプロジェクトもあるけど、 自前開発プロジェクトCLASSPATHとの関係がいまいち。
720 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 18:02:27 ] 時間かかりそうかつ利用者が少ないWPF関連はしばらく飛ばして実装なんだな
721 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 18:23:08 ] Moonlightにリソース絞りたいんでしょう
722 名前:717 mailto:sage [2008/11/22(土) 23:26:03 ] >>718 すまんLINQは3.5からだった。 しかし、LINQ to XML は笑っちゃうくらい簡単だな。 こうなると何でもかんでもXMLで読み書きしたくなる。 俺的には今XMLが熱いw
723 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 02:44:46 ] >>675 の Mono 2.2 で予定されているプランが微妙に変わってた... * Native Windows.Forms engine (Windows only) Windows only って意味ないやん!
724 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 03:07:32 ] Mono2.2 で Paint.Net を動かしてみたけど、だいぶ速くなってるな。 前は、5倍ぐらい速くなんないとダメだろうとか思っていたのが、 倍ぐらい速くなればいけるんじゃね?と思えるぐらいになった。 バグもいっぱいとれてるしMonoチームGJ!
725 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 03:28:01 ] ネイティブパーツはWindows onlyだと なんという無意味さ これぞまさにWindows Forms
726 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 04:19:21 ] windows なら.net使うよw
727 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:45:19 ] 'Native' Windows Formsなんだから、Windows only に決まってるじゃん
728 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:59:43 ] MONOに鞍替えしたらネイティブ作れるの?
729 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:36:44 ] 〉〉728 .NETは元々ネイティブだけど、Linux上でってこと? 残念ながらネイティブではない。 見た目がWindowsのアプリと同じになる。
730 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:58:25 ] 見た目がってどのウィンドウズと同じ見た目になるの? Luna固定とかだったら逆にキモいだけじゃねw
731 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:17:03 ] XP以降で言うクラシックスタイルだな今は 俺はそれがキモくて仕方がないから開発にはぜひWindows Formsが各プラットフォームネイティブの見た目になるように頑張ってほしい。
732 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:21:35 ] VisualStudio 2008 Expressで作ったプロジェクトをコンパイルしたいんだけど、 prj2make Target.csproj とかすると EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object at Mfconsulting.General.Prj2Make.SlnMaker.GetCsprojFileVersion (System.String strInCsprojFile) [0x00000] at Mfconsulting.General.Prj2Make.SlnMaker.MsSlnHelper (Boolean isUnixMode, Boolean isMcsMode, Boolean isSln, System.String slnFile) [0x00000] とか言われちゃうんだけど対応してない? Mono 2.0.1 from MacPorts 普段びずあるすたじおで開発してるんだけどゴロ寝PCがMacなのでそっちでもゴロ寝開発したいんだ… つかMonoって全然流行ってないんだね…
733 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:27:58 ] 2003までじゃないかな
734 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 22:39:07 ] 2005 以降の csproj は msbuild 形式だから Mono でやるんなら たぶん xbuild だな。実際出来るかどうかはしらない
735 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 00:54:13 ] >>733 そうなのか >>734 おーありがとー csprojってxmlファイルだったんだな…初めて知った xbuildで試してみたけどMicrosoft.CSharp.targetsがうんぬん言われた >>480 っぽくパスを書き換えてやったらそれっぽい動作をしたけど参照してるDLLが見つからねえとか System.Net.HttpWebRequestだかがみつからねぇだとかすげーエラー吐かれたから不貞寝するわ…
736 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 17:55:15 ] モノにならなかったわけか
737 名前:デフォルトの名無しさん [2008/11/30(日) 23:17:26 ] Monoは純正が提供されていないWindows2000用 当面は Windows Forms が Native でも問題ない。
738 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 02:51:29 ] >>247 マジですか!Windows.Formsが動くんですか! 昔なんとなくwinで作ったdotNetアプリを動かそうとしてダメで 調べたらWindows.Formsが未対応だったからガッカリしてました。 動くんなら、またやってみるべ。
739 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 02:56:11 ] なんという遅レス
740 名前:デフォルトの名無しさん [2008/12/01(月) 08:18:55 ] 本来、掲示板とはそういうもんだ
741 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 15:39:58 ] MacOSX上のWindows.Forms on monoの話. コントロールの範囲外で起こるMouseEventのMouseEventArgsの座標が常にオカシイ. 例えばMouseDownしてコントロールの範囲外までMouseMoveしたとき等. いつもPointToClient( Control.MousePosition )しないといけないのでめんどくさい. こういうのをここにしかPOST出来ない俺が情けないよ,ホントに.
742 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 21:09:16 ] もう消しゴムの方のMONO使っていいんですか!
743 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:28:22 ] OSX 10.4.11 ppc mono 2.0.1 だけど win.forms 動かないよ画面でてこない GTKは動くんだけど
744 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:38:30 ] >743 Windows.Formsに対応してるのは1.2系だけじゃなかったけ?
745 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 09:51:16 ] ガーンそうなんだ。ありがとう TypedReference.MakeTypedReferenceとかもNotImplementedExceptionだった
746 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:30:34 ] winformsは2.4にOSXのアップデートが含まれると書いてあったな。
747 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:48:33 ] 野良ports作者さん乙です。 ちょっと前にビルドした時のメモを消す前に残しておきます。 依存関係で参考になるかもと思って。 ビルドに gawk が必要 /bin/bash がハードコーディングされている箇所あり。/bin/sh に書き換え winformアプリの実行に libgdiplus が必要?
748 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 12:34:06 ] >>743 >>744 intel macだと>741見たいなことにはなるが動いてるよ. X11を入れ忘れてるとか? Universalだから,「ppcの場合は動きません」とかは無いと思いたい >>747 libgdiplusの方を先にmake installして下さいと書いてありますね
749 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:54:22 ] OSX ppcだけどX11いれてるけど動かないよ traceしてみると System.Drawing.GdiplusStartupInput:MakeGdiplusStartupInputで止まってるみたい なにかライブラリ足りない?
750 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:01:50 ] >>749 ひょっとしてmac ports使ってる? だとしたら速攻削除して公式バイナリ使ってみれ
751 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 22:54:57 ] 公式だけどだめ mono のforumsに似た症状のカキコがあって libcairoをいれたら動いたとかあったのでmakeしてinstallしてみたけどかわらないよ make checkしたらFAILしてるからそのせいなのかわからないけど
752 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:43:51 ] >>749 X11.appを起動して、 export DISPLAY=:0 の環境があるところで実行。 あるいは、 export MONO_MWF_USE_QUARTZ_BACKEND=1 export MONO_MWF_USE_CARBON_BACKEND=1
753 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:52:47 ] OSX ppc で動いた Win.forms 動いたよ mono --trace hello_form.exe 1>log ってやって、5分以上無応答で ほったらかしにしてX11のxtermで man mono してたらウィンドウがでてきた その後はX11も閉じてTerminalからやっても1分くらいで ウィンドウがでるようになったよありがとう Mono.frameworkのenv.shを.bash_profileに全部書いたのもよかったのかも
754 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 06:26:48 ] formsが動いたから遊んでみた TextBox のコピペしたらクリップボードがOSと共有できないのに気づいたよ 何か共有する方法ってある?ファイル書き出ししかない?
755 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 16:19:17 ] 要望提出
756 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 05:30:34 ] hosyu
757 名前:デフォルトの名無しさん [2008/12/29(月) 20:56:58 ] Mono 2.2 RC1 が出たというのに反応がないな... 2.2はJITエンジンが新しくなってて、Winformsもたくさんバグが とれてるし、重要なリリースだよ。
758 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:14:34 ] 簡単なちん毛ログはでてないのか?
759 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:48:44 ] ASP.NET AJAX動いた人いる? 実験したんだが、Visual Web Developerで動かしたときはリロードなしで動くのに、 プロジェクトをコピーしてxsp上で動かすとページ全体をリロードして動く。 使ったのはmono公式で配ってる Mono-2.0.1_openSUSE-11.0.iso をVirtualPC上で動かした環境。
760 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:23:47 ] >>758 ttp://www.mono-project.com/Roadmap このページに要約とリリースノートがあるよ。
761 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 05:23:20 ] てかGNOMEのもの必要としすぎ
762 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 04:08:20 ] >>761 Mono は glib しか必要としてないはずだけど。 Winforms は Cairo を使っているけど、ソースに内包してるから 改めてインスコしとく必要はないよ。
763 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 18:37:58 ] .NETがすでにインストールされてるWindowsにMONOを入れたらどっちで走るの?
764 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 18:50:00 ] .NET Framework
765 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 19:26:22 ] 試してみたいけどPC一台しかもってないから面倒なことになりそうだな
766 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 21:37:01 ] コマンドプロンプトで、monoへパスが通ってるところで、 mono hogehoge.exe で実行したら、monoで走る。それ以外は純正.NETで走る。
767 名前:759 mailto:sage [2009/01/01(木) 21:42:19 ] 自己解決。/xsp/ScriptResource.axdが404になってるのが分かり、数時間悩んだ末 /usr/lib/xsp/test/web.config をVWDの出力したものに置き換えたら普通に動いた。 プロジェクト一式をディレクトリを掘った奥に置いただけだったからだめだったのね。
768 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 13:03:58 ] Mono on Android ttp://tirania.org/blog/archive/2009/Jan-05-1.html ttp://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html
769 名前:デフォルトの名無しさん [2009/01/13(火) 07:49:20 ] >>762 公式で転がってる各種のtoolをいれた時の話 必要とされまくってるよ
770 名前:デフォルトの名無しさん [2009/01/13(火) 07:50:52 ] あとcairoってGNOME関係なくね
771 名前:デフォルトの名無しさん [2009/01/13(火) 07:59:55 ] てか別に意地になるような話でもことでもないけどさ 入れればいいだけだし ただなんとなく気分で書いた glibとかcairoとかgtkに必要なものぐらいはどうせokだけど なんか何が必要なのか分からないからとりあいず 公式においてあるもので必要になりそうなものだけ入れとくかと思ったら GNOMEができあがっていらっとしただけの話でした失礼しました
772 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:30:36 ] Cell B.E.に特化したMONOってありませんの?
773 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 11:01:51 ] IBM が乗り気になればできるんじゃない?
774 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 23:53:37 ] >>772 バカは死ねよ
775 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 00:29:39 ] 2.2出たみたいだね
776 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:51:15 ] Mono Projectは1月13日、.NET Frameworkのオープンソース実装「Mono 2.2」をリリースした。 プロジェクトのサイトよりソースとバイナリパッケージをダウンロードできる。 最新版では、バグ修正のほか、いくつかの機能強化を行った。ランタイムでは、コード生成エ ンジンとして新たに「Linear IL」を採用。これまでのツリーベース表示と比べ、高度な最適化が 可能になるという。このほか性能面では、「Generic sharing」を強化したほか、JITでSIMD命令 セットをサポートした。モニタリングでは、最新のGUIツール「mperfmon」により、システムのパ フォーマンスを監視できるようになった。 C#レベルでは、「Mono.CSharp.Evaluator」を利用してC#コンパイラをアプリケーションに組み 込めるようになった。また、インタラクティブシェル「csharp」コマンドが追加されたほか、GUI バージョン「gsharp」もツールパッケージに含まれているという。 コード分析ツール「Gendarme」は、新しいフィルタリングオプションやルールが追加された。 既存ルールの修正や強化も行ったという。 sourceforge.jp/magazine/09/01/16/048239
777 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 02:51:13 ] 2.2がでても盛り上がりなしか・・・
778 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 02:56:22 ] 俺は見守ってる
779 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 10:53:26 ] 俺も見守る
780 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 11:21:22 ] 俺は看取ることにしよう
781 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:38:51 ] FreeBSD Mono とかいうメーリングリストが始まったらしい件
782 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:36:19 ] Monoの為だけにopenSUSEにしちまった
783 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:50:53 ] >>782 俺漏れも
784 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 05:49:37 ] このプロジェクトが存続するとマイクロソフトにとっては厄介なことになりそうだな .NETを捨てる時にユーザーが付いてきてくれなくなったらどうするんだろ MONOも変えさせるんだろか
785 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:23:16 ] それは杞憂といいます
786 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:16:08 ] 仮にMSが.NETを捨てて新しものを作ったとする. その新しいものが.NETよりもずっと魅力的ならデベロッパーもユーザーも 付いていくし,今度はそれの互換環境を他OS向けに開発しようという奴が出るだろう. 魅力的でなければまぁ誰も移行しなくて終了.それだけじゃね?
787 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 02:42:06 ] .NETはOSのAPI的な意味合いが強いから、そう簡単には捨てないだろ。 それよりも、.NET使ったアプリは結構な割合でWin32も一緒に使ってる。 Win32自体がまだ捨て去られていないほうが問題だ。
788 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 16:24:15 ] .netで、ユーザーモードのデバイスドライバを開発できるようになってほしいな。 上手くmonoが追従すれば、LinuxでもWindowsでも同一バイナリのドライバでデバイスが使えるようになる。 でも、そこまで抽象化するのも難しいのかねえ
789 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:46:18 ] 昔のPDCの資料では、UMDFでC#でドライバ書けるとなっていた。 しかし途中からそういう話はなくなった。
790 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 00:36:54 ] WPFは実装しないのかなあ WinFormsに比べたら移植性は高そうだけど
791 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 00:53:55 ] WPFは普及度的に後回しだろうな
792 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 01:12:14 ] Win 7と VS 10 + .NET 4.0 で弾みがつくかもしれないけど まだまだだしな > WPF
793 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 22:46:11 ] 始まる前に終わる
794 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:59:11 ] ttp://www.atmarkit.co.jp/news/200901/29/mono.html > iPhoneでC#アプリが審査に通るワケ Windows でも AOT でネイティブ EXE 作れるの?
795 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:28:39 ] GnomeはどのぐらいMonoになってるの?
796 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:03:54 ] ぜんぜん
797 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 07:31:19 ] ubuntu 8.10 serverで使ってるんですが、CreateDirectoryの類が使えないのはなぜ?
798 名前:797 [2009/02/02(月) 07:32:54 ] 例外も出ないんですが、処理が実行されててもディレクトリが作成されていません。
799 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 09:35:54 ] 他のlinuxでもそう?
800 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 09:36:01 ] 勘違いでした。 別のディレクトリを見てました。
801 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:00:41 ] w
802 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 15:11:32 ] なんつー間の抜けたスレ
803 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:00:59 ] 所詮2chレベル
804 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:04:40 ] Monoの話じゃないのだけれど、java swingのプログラムをlinuxで動かしたら ホームディレクトリに ~/C:\windows\temp\hoge.tmp というファイルが出来て笑ったことがある。
805 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:08:35 ] 決め打ちかよw
806 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:34:12 ] 使い捨てのコードとか、利用者が自分だけだというコードではよくやるよなー
807 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:02:41 ] 何も考えずに、カレントディレクトリとかにすればいいのに。
808 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:16:34 ] >>807 Vistaだとカレント(プログラムのあるディレクトリ)に書こうとすると変なことろに飛ばされるじゃん。
809 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:18:11 ] あちこちのファイルし操作してるとカレントに頼れないからな 書き込めない場会も多いし
810 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:56:42 ] 確かに環境変数とかってなんも設定されてないな。/tmp決め打ちでいいかと。
811 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:44:13 ] そしてWindowsユーザーが「勝手にtmpとかディレクトリ掘られててわろた」 とかスレたてするんですね。
812 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:00:31 ] mono製のクロスプラットフォームで動くアプリを数本書いてるが、 何箇所かはEnvironment.OSVersionのPlatformIDで分岐させてるよ。
813 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:05:55 ] tempのフォルダ取得ぐらい、.NETなら標準で用意されてるじゃねーか。 それどころかtempファイルまで作ってくれるわ。
814 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:48:35 ] そもそもWindowsでもTEMPとTMPの環境変数はデフォルトでセットされてる。
815 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:55:10 ] IronPythonはMonoで動きますか?
816 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 19:08:14 ] IronPython1.0は動く。 IronPython2.0は今のところ未対応。 F#はばっちり動くよ
817 名前:デフォルトの名無しさん [2009/02/08(日) 22:47:44 ] 消しゴムの(MONO)を使って、東方を描いてみました。 初めての試みなので、ちょっと雑な部分もあるかも知れませんが^−^; page6.auctions.yahoo.co.jp/jp/auction/f76771677 page9.auctions.yahoo.co.jp/jp/auction/k108226196 page2.auctions.yahoo.co.jp/jp/auction/b94573580 page.auctions.yahoo.co.jp/jp/auction/115816594
818 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:27:46 ] サラしageは他の板でやってくれ
819 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:10:44 ] 以下のコードのRun()の実行時間が型によって全然違うんだが仕様? 環境はUbuntu上でMonoのバージョンは2.2 VC#でもコンパイルしてみたが,intもlongもあまり差は無かった class hoge{ static void Main(){ Run(new int[10000]); Run(new long[10000]); } static void Run<T>(T[] a){ Stopwatch sw=Stopwatch.StartNew(); for(int i=0;i<100;i++) Array.Reverse(a); sw.Stop(); Console.WriteLine("{0}: {1} s",typeof(T),sw.Elapsed.TotalSeconds); } } 実行結果 System.Int32: 0.0096311 s System.Int64: 2.4027608 s
820 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:48:21 ] そりゃx86上じゃ64bit整数はそのままじゃ扱えないからな
821 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:17:13 ] MONOの最適化はちょっと甘いことがある。
822 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:30:42 ] >>819 CPU何使ってんの? Core2とかだったらVC#は64bitレジスタを使用している可能性がある。 Monoだと32bitレジスタ2つ使って対応していると思うけど、 それにしても遅すぎだな。 その環境の最高性能を引き出すようにコンパイルされないと マネージコードの魅力が半減しちゃうな。 ちなみに、手元の環境だとこんな感じ。 System.Int32: 0.005742 s System.Int64: 0.9745676 s 少し差が縮まってるw
823 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:44:58 ] 64bitモードじゃないと64bitレジスタは使えない件について
824 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:47:17 ] Run(new long[10000]); Run(new int[10000]); の順で実行したらどうなるの?
825 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:55:03 ] Windows Vista Ultimate 32bit Q6600 System.Int32: 0.0009932 s System.Int64: 0.0031525 s int と long の実行順序を逆にしても変わらん
826 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:58:17 ] >>825 の環境で object も試してみた System.Int32: 0.0009384 s System.Int64: 0.0032696 s System.Object: 0.0066534 s 構造体って速いんだね
827 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:25:13 ] 誰か64bit環境でやってみて
828 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:46:36 ] >>819 の Run を Int32 と Int64 でそれぞれ5回ずつ走らせて平均を取った。 x86 Int32: 0.00093284 s Int64: 0.00314952 s x64 Int32: 0.00096868 s Int64: 0.00118714 s any Int32: 0.00097392 s Int64: 0.00118982 s
829 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:00:35 ] なるほど あとintだけ配列の要素数を2倍にするとどうなる?
830 名前:819 mailto:sage [2009/02/13(金) 02:06:17 ] >>822 CPUはCore Solo U1300(1.06GHz)だから、 64bitレジスタはないはず。 他の型の場合についても試してみたらこんな結果になった。 Monoはintとdoubleが速くて、それ以外が一様に遅い。 VC#は32bit以下と64bitで分かれてる。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8877.txt Array.Reverseの内部でboxingされてるとかいう理由な気がしてきた。 Monoではintとdoubleだけは例外的に最適化されたりするのかも。 実際にstatic void MyReverse<T>(T[] a)とか実装して走らせてみたら、 だいたいVC#の2倍くらいの実行時間になった。
831 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:07:10 ] >>823 そんなことない。レジスタサイズプリフィックス(?)をつければ 普通に使えるだろ。 64bitモードに移行すれば、プリフィックスがいらなくなる分 早くなるとかはある。 むかし、MS-DOSで386の32bitレジスタを使って高速化のテクとか 色々あったことを思い出した。
832 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:09:59 ] >>831 残念ながらそんなことあるんだな。64bitが可能なのはlong modeという特殊なモードだべ。
833 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:18:51 ] >>832 あぅ、確かに64bitモードはかなり厳格になっている... 嘘ついてごめんちゃい
834 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:23:01 ] >>828 ってVC#の結果?
835 名前:819 mailto:sage [2009/02/13(金) 02:33:51 ] >>824 変わらなかった。 >>829 実行時間は単純に2倍になった。 参考になるかわからんが、Mono 1.2.6でも似たような結果だった。 (というより、元々は1.2.6を使っていて、こういう結果が出たから2.2に更新した)
836 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:42:46 ] >>835 なるほど サンクス
837 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 03:07:49 ] こんだけ単純なコードなら吐き出したCIL見比べた方が早いんじゃない?
838 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 03:30:55 ] ところがぎっちょん。 cscでコンパイルしたのをmonoで動かしても gmcsでコンパイルしたのをmsclrで動かしても同じ結果なのです。
839 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 04:59:31 ] // fsc -O test9f.fs / fscp -O test9f.fs #light open System.Diagnostics let rec reverse cnt ar = if cnt > 0 then (Array.rev ar |> reverse (cnt - 1)) else ar let Run ar = let sw = Stopwatch.StartNew() in let rt = reverse 100 ar in sw.Stop(); printfn "%A" sw.Elapsed; rt let _ = printfn "%A" (Run [| 0..10000 |]); printfn "%A" (Run [| 0L..10000L |]);;
840 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 05:00:39 ] F# (on mono 2.2)でやってみると 配列をコピーするのでその分時間がかかっているが、int64は結構速い。 00:00:00.0112015 (int32 00:00:00.0134897 (int64 >>819 の結果はこれ System.Int32: 00:00:00.0050849 s System.Int64: 00:00:01.3990044 s
841 名前:819 mailto:sage [2009/02/13(金) 13:27:13 ] >>837 ILは知識が無くてわからないけど、 >>838 の言うような結果になった。 gmcsでコンパイルしてmonoで実行=cscでコンパイルしてmonoで実行 gmcsでコンパイルしてmsclrで実行=cscでコンパイルしてmsclrで実行 ね。
842 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:05:23 ] つまり Array.Reverse の中の人の差か
843 名前:822 mailto:sage [2009/02/14(土) 23:18:34 ] >>842 が原因を解明してくれたんで、チラッと調べてみた。 ソースは mono-2.2/mcs/class/corlib/System/Array.cs で、 詳細は省くけど object int double 以外は、汎用的なやたら遅い Swapper というもので処理されてた。 当然 long が Swapper で処理されていたので、int と同じ処理 を追加したら以下の結果になった。 System.Int32: 0.0042768 s System.Int64: 0.0050798 s System.Int32: 0.0042583 s System.Int64: 0.0051871 s System.Int32: 0.0043195 s System.Int64: 0.0052207 s ソース見ればなんで遅いかは一目瞭然だけど、こういう処理は Generic を使うべきだろうなと痛感する。(List.Reverse か?)
844 名前:822 mailto:sage [2009/02/14(土) 23:40:01 ] 以下パッチ *** Array.cs.orig 2008-11-11 14:02:14.000000000 +0900 --- Array.cs 2009-02-14 22:40:01.000000000 +0900 *************** *** 1215,1220 **** --- 1215,1231 ---- } return; } + long[] larray = array as long[]; + if (larray != null) { + while (index < end) { + long tmp = larray [index]; + larray [index] = larray [end]; + larray [end] = tmp; + ++index; + --end; + } + return; + } double[] darray = array as double[]; if (darray != null) { while (index < end) {
845 名前:822 mailto:sage [2009/02/15(日) 00:44:07 ] 同じexeをVistaで実行したら System.Int32: 0.0007259 s System.Int64: 0.0025201 s だった・・・ 速度差はJITコンパイラ自体の速度差のような気がする。 JITコンパイラは、早いコードを生成する最適化も必要だけど 自分自身も高速に動かないといけないジレンマがあるよな。
846 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:05:25 ] どうでもいいコード書くときはリストより配列の方が書くのめんどくさくなくて使ったもののあっれーおっそいなーとかってよくあるよねー俺だけですかーそうですよねー
847 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 03:02:52 ] >>843-845 面白いネタだ サンクス
848 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 10:16:53 ] 今後のために言っておくと、パッチの中身を2chにそのまま貼るのはやめたほうがいい 書き込むときの2chの同意画面に注意
849 名前:819 mailto:sage [2009/02/15(日) 23:57:39 ] >>843 自分でもArray.csを読んでみた。 なるほど、その3つの型以外では for(int l=0,r=array.Length;l<r;l++,r--){ object temp=array.GetValue(l); array.SetValue(array.GetValue(r),l); array.SetValue(temp,r); } みたいな実装になってるのか。そりゃ遅い訳だ 2.0以降はArray.Sort<T>(T[] array)があるみたいだから、 ついでにReverse<T>(T[] array)とかも追加されてたら良かったのにね
850 名前:819 mailto:sage [2009/02/16(月) 00:00:08 ] すまん、どうでもいいかもしれんが ×for(int l=0,r=array.Length;l<r;l++,r--) ○for(int l=0,r=array.Length-1;l<r;l++,r--) ね。
851 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 22:22:12 ] クラスライブラリ(dll)読み込まんのだけどなんでだろ。 ほかのサーバーでは同じディレクトリに入れとけばNPだったのに。 なんか必要なことあるんでしょうか?
852 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:19:56 ] なんかMONO足りないな・・・
853 名前:デフォルトの名無しさん [2009/02/27(金) 01:55:53 ] 2.4RC1が出たぞ。 * JIT o Metadata verifier * ASP.NET o 3.5 APIs (except for Linq support) o Precompiled Web Sites. * MonoDevelop 2.0 o Built-in GUI debugger てなってるが、バグフィックスリリースなんで面白みはない。
854 名前:アカツキ特戦隊 [2009/03/02(月) 10:23:06 ] 僕も頑張って、よい消しゴム作ったつもりです。 オークションで流してみたので、見ていってください^−^ page2.auctions.yahoo.co.jp/jp/auction/b97392083
855 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 02:50:13 ] コンカレントGCは実装されないのかー?
856 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 08:06:13 ] blog.browncat.org/2007/12/mono.html わかるような気もする…
857 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 09:48:45 ] MONO消し ププッ・・・ククククッw