
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>mod_mruby | monolog</title>
	<atom:link href="https://blog.monora.me/tag/mod_mruby/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.monora.me</link>
	<description>monora log #=&#62; ものろーぐ</description>
	<lastBuildDate>Sun, 24 May 2020 18:55:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.1</generator>
<site xmlns="com-wordpress:feed-additions:1">21279848</site>	<item>
		<title>mod_mruby on FreeBSD</title>
		<link>https://blog.monora.me/2013/02/mod_mruby-on-freebsd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mod_mruby-on-freebsd</link>
		
		<dc:creator><![CDATA[きょんたん]]></dc:creator>
		<pubDate>Sun, 17 Feb 2013 09:31:21 +0000</pubDate>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[mod_mruby]]></category>
		<guid isPermaLink="false">http://blog.monora.me/?p=265</guid>

					<description><![CDATA[<p>mod_mrubyをFreeBSDで動かそうとして詰まるの修正点が変わってしまったのと、mod_mrubyが更新されてEvent MPMとWorker MPMでも動くようになったようなので再チャレンジしてみました。 Fr [&#8230;]</p>
The post <a href="https://blog.monora.me/2013/02/mod_mruby-on-freebsd/">mod_mruby on FreeBSD</a> first appeared on <a href="https://blog.monora.me">monolog</a>.]]></description>
										<content:encoded><![CDATA[<p><a title="mod_mrubyをFreeBSDで動かそうとして詰まる" href="https://blog.monora.me/2012/12/mod_mruby%e3%82%92freebsd%e3%81%a7%e5%8b%95%e3%81%8b%e3%81%9d%e3%81%86%e3%81%a8%e3%81%97%e3%81%a6%e8%a9%b0%e3%81%be%e3%82%8b/">mod_mrubyをFreeBSDで動かそうとして詰まる</a>の修正点が変わってしまったのと、mod_mrubyが更新されてEvent MPMとWorker MPMでも動くようになったようなので再チャレンジしてみました。</p>
<p>FreeBSDでのmakeのやり方がまた変わってしまったので後述します。<br />
とりあえずベンチマークの結果から。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-linenumbers="true">
$ cat test.txt
Hello!

$ cat test.rb
#!/usr/local/bin/ruby

print "Content-type: text/plainnn"
print "Hello"

$ cat test.mrb
Apache.rputs("Hello")
Apache.return(Apache::OK)
</pre>
<p>検証機のスペック: IBM ThinkCentre A55 (9636-A16)<br />
CPU: Core2 duo E6300@1.86GHz<br />
RAM: DDR2-SDRAM 1GB<br />
LAN: Broadcom Gigabit Ethernet<br />
Apache/2.2.23 (FreeBSD), mod_fcgid/2.3.6</p>
<p>Varnish(3.0.3)がリバースプロキシとして動いているので参考値であることをご了承ください。</p>
<p>abの条件は前回と同じく下記の通りで、3回計測して平均を取っています。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-linenumbers="true">
$ ab -n 100000 -c 100
</pre>
<table>
<tbody>
<tr>
<th>Type</th>
<th>req/s</th>
</tr>
<tr>
<td>Plain Text</td>
<td>6318.693</td>
</tr>
<tr>
<td>Ruby 1.9.3p194(mod_fcgid)</td>
<td>5159.423</td>
</tr>
<tr>
<td><strong>mod_mruby</strong></td>
<td><strong>6700.153</strong> <del datetime="2013-02-17T12:15:11+00:00">4626.193</del></td>
</tr>
</tbody>
</table>
<p><del datetime="2013-02-17T12:15:11+00:00">な……何故か、FastCGIのrubyに負けてますが、このような結果となりました。</del></p>
<blockquote><p>
2013/2/17 21:15追記:<br />
mod_mrubyの作者である @matsumotory さんが<a href="https://twitter.com/matsumotory/status/303099603451015168" alt="Twitter / matsumotory: 最新のソースはthread_mutexにしたんだけど、それで ...">こんな事</a>を仰っていたので最新版をビルドし直して再測定しました。は、速い…
</p></blockquote>
<p>mod_mrubyはApacheのモジュールとかを書くのに面白く使えそうなので、そちらの道を模索してみたいなぁ……と</p>
<p>FreeBSDでmod_mrubyを使うためには、またちょこっと弄る必要があるみたいです。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-linenumbers="true">
$ git submodule init && git submodule update
$ cd mruby
</pre>
<p>mruby本体のビルド設定に<strong>-fPIC</strong>を付ける。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-linenumbers="true">
$ nano tasks/toolchains/gcc.rake
4: cc.flags = [ENV['CFLAGS'] || %w(-g -O3 -Wall -Werror-implicit-function-declaration -fPIC)]
</pre>
<p>makeではなく<strong>gmake</strong>を使う。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-linenumbers="true">
$ rake
$ cd ..
$ ./configure
$ gmake && gmake install
</pre>
<p>この2点だけです。エラーが読めない人間には辛い……<br />
もう httpd.conf が mod_mruby を読み込むよう設定されているはずなので、 Apache を再起動させれば終わりです。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-linenumbers="true">
$ httpd -k restart
</pre>The post <a href="https://blog.monora.me/2013/02/mod_mruby-on-freebsd/">mod_mruby on FreeBSD</a> first appeared on <a href="https://blog.monora.me">monolog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">265</post-id>	</item>
	</channel>
</rss>
