Milkode 1.7ã§æ°ããå ¥ã£ãGomilkã®æè¡è§£èª¬ã§ããããæ°ã¶æGoè¨èªã®åå¼·ããã¦ãã¾ããããRubyã§æ¸ãããMilkodeã¨ã®ããçµã¿åãããæãã¤ããä¸ã¶æã»ã©ããã¦ä½ã£ã¦ã¿ã¾ããã
Gmilkã®åé¡
Milkodeã«ã¯Gmilkã¨ããGrepæè¦ã§ä½¿ããã³ãã³ãã©ã¤ã³ãã¼ã«ãä»å±ãã¦ããã®ã§ããããå°ãé«éã«æ¤ç´¢ãããã¨ããæ¬²æ±ããã£ã¨ããã¾ããã
Gmilkãé ãåå ã¨ãã¦ã¯
- é¢é£ããã©ã¤ãã©ãªããããããã£ã¦ã¢ããªã±ã¼ã·ã§ã³ã®èµ·åãé ã
- æ¤ç´¢åè£ã®ãã¡ã¤ã«ä¸è¦§ãåãã«ã¼ãå¦çãé ã
ã¨ããã®ã主ãªçç±ã§ããã
ãããã®åé¡ã解決ããããã«æ°ããããã°ã©ã ãæ¸ãã¾ããã ååã¯Goè¨èªã§ä½ãã®ã§Gomilkã¨ãã¾ãã(å¶ç¶ã´ããããã£ã)ã
使¦
以ä¸ã®ãããªä½æ¦ã§é«éåãå³ãã¾ããã
- ãããããWebã¢ããªãç«ã¡ä¸ãã¦ãã
- Gomilkãå®è¡
- Gomilkã¯å¼æ°ããæ¤ç´¢ã¯ã¨ãªãä½ã£ã¦httpçµç±ã§Webã¢ããªã«æ¸¡ã
- Webã¢ããªã¯ããã£ãã¯ã¨ãªã¼ãå ã«Groongaã§å ¨ææ¤ç´¢ãã¦æ¤ç´¢åè£ã®ãã¡ã¤ã«ä¸è¦§ãè¿ã
- åãåã£ããã¡ã¤ã«ä¸è¦§ãå ã«Gomilkå´ã§ãã¡ã¤ã«å å®¹ã®æ¤ç´¢ãè¡ã
å®éã®å¦çã¨ç §ããåãããã¨ä»¥ä¸ã®ããã«ãªãã¾ãã
1. ãããããWebã¢ããªãç«ã¡ä¸ãã¦ãã
$ milk web -g
2. Gomilkãå®è¡
$ gomilk test
3. Gomilkã¯å¼æ°ããæ¤ç´¢ã¯ã¨ãªãä½ãhttpéä¿¡çµç±ã§Webã¢ããªã«æ¸¡ã
GET http://127.0.0.1:9292/gomilk?dir=%2Fpath%2Fto%2Fdir&query=test
4. Webã¢ããªã¯ããã£ãã¯ã¨ãªã¼ãå ã«Groongaã§å ¨ææ¤ç´¢ãã¦æ¤ç´¢åè£ã®ãã¡ã¤ã«ä¸è¦§ãè¿ã
/path/to/dir/Gemfile /path/to/dir/app.rb
5. åãåã£ããã¡ã¤ã«ä¸è¦§ãå ã«Gomilkå´ã§ãã¡ã¤ã«å å®¹ã®æ¤ç´¢ãè¡ã
`path/to/dir/Gemfile`ã®ä¸ãã`test`ãæ¢ãã»ã» `/path/to/dir/app.rb`ã®ä¸ãã`test`ãæ¢ãã»ã»
主è¦ã©ã¤ãã©ãªã®åæåå¦çã¯ãããããWebã¢ããªå´ã§æ¸ã¾ãã¦ãããã¨ã§ã¢ããªã±ã¼ã·ã§ã³ã®èµ·åæéã®ç縮åã«ã¤ãªããã¾ãã
2, 3, 5ã«ç¸å½ããhttpéä¿¡ã¨ãã¡ã¤ã«ä¸è¦§ãå ã«ããæ¤ç´¢å¦çã¯Goè¨èªã§æ¸ãã¾ã(ãããGomilk)ããã¤ããªã«å¤æåºæ¥ãã®ã§ããã°ã©ã ã®åºæ¬é度èªä½ãé«éã«ãªãã並åå¦çã使ã£ã¦è¤æ°ã®ãã¡ã¤ã«ãåæã«æ¤ç´¢ãããã¨ãå¯è½ã«ãªãã¾ãããã¡ã¤ã«ä¸è¦§ãåãã«ã¼ãã¯ããã¶ãã¨é«éã«ãªãã¯ãã§ãã
Groongaã¨ã®éä¿¡ãwebã¢ããªèªä½ã®å¶å¾¡ã¯ãã§ã«Rubyã§æ¸ããã¦ãããã®ãåå©ç¨åºæ¥ãããGoã§æ¸ãç´ãéãæå°éã«çµããã¨ãåºæ¥ã¾ããã(å²ã¨éè¦)
çµæ
OSX 10.7.5, Core2 Duo 3.06 GHz, 8 GB RAM, 500GB HDD.
ããããã®ã«ã¼ããã£ã¬ã¯ããªãã"performance test"ãæ¤ç´¢ãã¾ããã(ä¾: grep -r "performance test")
Ruby-2.1.2 (4722 files)
| æ¤ç´¢1åç®(sec) | 2åç®ä»¥é(sec) | |
|---|---|---|
| grep 2.14 (-r) | 11.510 | 0.191 |
| ag 0.22 pre | 7.024 | 0.159 |
| Gmilk 1.7.0 | 10.783 | 2.198 |
| Gomilk 0.1 | 4.110 | 0.228 |
linux-3.10-rc4 (45752 files)
| æ¤ç´¢1åç®(sec) | 2åç®ä»¥é(sec) | |
|---|---|---|
| grep 2.14 (-r) | 40.135 | 1.747 |
| ag 0.22 pre | 35.923 | 1.459 |
| Gmilk 1.7.0 | â»3.196 | 2.315 |
| Gomilk 0.1 | 11.400 | 0.539 |
- (ãããã)ãã¡ã¤ã«å 容ãHDDã®ãã£ãã·ã¥ã«è¼ã£ã¦ãããã©ããã§æ¤ç´¢é度ãå¤ããããã1åç®ã¨2åç®ä»¥éã§åãã¦è¨æ¸¬ãã¾ãã
- HDDã®ãã£ãã·ã¥ã¯ãªã¢ã¯ãã·ã³ãåèµ·åããã°å¤åã¯ãªã¢ãããã ãããã¨ããåæã§è¡ã£ã¦ãã¾ãã
- â»ã«ã¤ã㦠: ããçç±ãåãããªãã£ãã®ã§ããå¦ã«æ©ãã£ãã§ãã»ã»ãRubyãæ¤ç´¢ããå¾ã«Linuxãæ¤ç´¢ãã¦ãã¼ã¿ãåã£ã¦ããããGroongaãã¼ã¿ãã¼ã¹ã®å 容ãäºåã«ãã£ãã·ã¥ããé«éã«ãªã£ãã®ããããã¾ããã(ã§ããããªãGomilkããã£ã¨æ©ããªã£ã¦ããããªã)
ç¹ã«ãã£ãã·ã¥ã«è¼ãåã®æåã®æ¤ç´¢ã«ããã¦ãå ¨ã¦ã®ãã¡ã¤ã«ã®ä¸èº«ã調ã¹ãå¿ è¦ã®ããgrepãagã¨æ¯ã¹ã¦ãå ¨ææ¤ç´¢ã¨ã³ã¸ã³ã§ãããããæ¤ç´¢å¯¾è±¡ãçµãè¾¼ããGmilk, Gomilk ã®æ¹ãæå©ãªå°è±¡ã§ãã
Gomilkã¯agçã®é«éãªgrepã¨æ¯ã¹ã¦ãå®å®ãã¦ããããã©ã¼ãã³ã¹ãåºãã¦ããäºãåããã¾ããGmilkã¨æ¯ã¹ãã¨å§åçã«é«éã§ãããã¡ã¤ã«æ°ãå¢ãã¦ããã¨Groongaã§äºåã«çµãè¾¼ããããGomilkã®å¹çã¯ããã«è¯ããªãã¾ãã
milk web å´ã®å®è£
milk web ã« -g ãªãã·ã§ã³ãä»ããæã« GET /gomilk ãåãåããããã«ãã¾ããä¾ãã°æ¤ç´¢ãã£ã¬ã¯ãª: /path/to/dirãæ¤ç´¢æåå: testã®å ´åã¯ä»¥ä¸ã®ãããªURLãåãä»ãã¾ãã
GET http://127.0.0.1:9292/gomilk?dir=%2Fpath%2Fto%2Fdir&query=test
åãåã£ãWebã¢ããªã¯ãã£ã¬ã¯ããªã¨æ¤ç´¢æååã使ã£ã¦Groongaãã¼ã¿ãã¼ã¹ãæ¤ç´¢ãã¾ããæ¤ç´¢çµæã®ãã¡ã¤ã«ä¸è¦§ãããã¹ãå½¢å¼ã§è¿ãã¾ãã
/path/to/dir/Gemfile
/path/to/dir/app.rb
å¾ã¯Gomilkå´ã«ãä»»ãã§ãã

GET /gmilk ã®çµæä¾ãæ¤ç´¢åè£ã¨ãªããã¡ã¤ã«ä¸è¦§ã表示ãããã
Gomilkã®å®è£
pt(monochromegane/the_platinum_searcher)ã®ã³ã¼ãã大ååèã«ãã¾ãããã¨ãããptãç¡ãã£ããGomilkãä½ãæ°ã«ããªããªãã£ãã¨æãã¾ããæã«è¶³ãåãã¦å¯ããã¾ããã
ç§ã®å ´åã¯ããæ¤ç´¢ããã³ã¼ã群ã¯Milkodeã«ç»é²ãã¦gomilkã§æ¤ç´¢ãããã以å¤ã¯ptã使ã£ã¦æ¤ç´¢ããããã«ä½¿ãåãã¦ãã¾ããptã¯Windowsçãããã®ã¨æ¥æ¬èªãã¡ã¤ã«ã«å¼·ãã®ãå¬ããæã§ãã
Gomilkãç¬èªã«å®è£ ããé¨åã¨ãã¦ã¯ãptããã£ã¬ã¯ããªå ãæ¤ç´¢ãã¦ãã¡ã¤ã«ãªã¹ããä½ãé¨åããhttpçµç±ã§milk webã¨éä¿¡ããå¦çã«ç½®ãæãããã¨ã§ãã
ã¾ã¨ã
Rubyã¨Goã®çµã¿åããã䏿ããã£ã¦æºè¶³ããæ¤ç´¢ã¹ãã¼ããå¾ããã¨ãåºæ¥ã¾ããã
ç§èªèº«ã¯ä»å¾ã¯ä¸»ã«Gomilkã使ã£ã¦ããã¾ããGmilkãå¼ãç¶ãã¡ã³ããã³ã¹ãç¶ããäºå®ã§ããRubyã ãã§åãããGmilkã®æè»½ãã¯ãã¯ã便å©ã§ããã¾ãGomilkãGmilkã®æå¤§ã®ã¡ãªããã¯ããã¡ãã¡æ¤ç´¢å ãã£ã¬ã¯ããªãæå®ããªãã§æ¤ç´¢åºæ¥ãããã¨ã ã¨æã£ã¦ãã¦ãagãgrepãé«éã§ãGomilkã使ããªãç°å¢ã§ããã°ãGmilkã使ã価å¤ã¯å åã«ããã¨æã£ã¦ãã¾ãã
æ¢åã®ã¢ããªã±ã¼ã·ã§ã³ãWebã¢ããªã¨ãã¦ãããããç«ã¡ä¸ãã¦ããäºã§ãå ¨ã¦ãGoè¨èªã«ç½®ãæããå¿ è¦ãç¡ããªããã¨ããã®ã¯è²ã ã¨ä½¿ããã¢ããã¼ãã§ã¯ãªããã¨æãã¾ããã
åãä¼¼ããããªãã¨ãæ¸ããæ°ããã¾ããGoè¨èªã¨Rubyã®ãããªLLè¨èªã®ç¸æ§ã¯ã¨ã¦ãããã¨æã£ã¦ãã¦ãã¾ãã¯Rubyã§ããããã¨ä½ããå¾ã§é度ãå¿ è¦ã«ãªã£ã¦ããé¨åãGoè¨èªã§ç½®ãæãã¦ããã¨ãªããªãããã§ããWebã¢ããªçã®ããã¯ã¨ã³ããç½®ãæããä¾ã¯ãã§ã«è²ã ãªæã§ç´¹ä»ããã¦ãã¾ãããGomilkã®å ´åã¯ããã³ãã¨ã³ããç½®ãæããä¸ã¤ã®ä¾ã«ãªã£ãã®ã§ã¯ãªãã§ããããã
Gomilkã¯ãæ¤ç´¢å ãã£ã¬ã¯ããªã®æå®ãä¸è¦ã§ããã¤grepãagãããé«éã«æ¤ç´¢åºæ¥ããç§ã«ã¨ã£ã¦çæ³ã®ãã¼ã«ã«ãªãã¾ãããæ¯éä¸åº¦ã試ãä¸ãããã¾ã åºæ¥ãã°ãããªã®ã§éææ©è½ã¯è¿½å ãã¦ããäºå®ã§ãã