2013-03-15 33 views
1

我正在寫一個列表函數在couchDB中。我想知道如果使用比JavaScript更快的語言會提高性能(我想Python是因爲我知道它)。不同的語言=在couchDB列表中有不同的表現嗎?

有誰知道這是否屬實,並且有人測試過它是否屬實?

+0

http://stackoverflow.com/questions/5168718/what-blocks-ruby-python-to-get-javascript-v8-speed雖然CouchDB不使用V8,但蜘蛛猴,我不認爲Mozilla傢伙留在瀏覽器之間的比賽:) – 2013-03-15 07:09:51

回答

0

如果您想要沙發,您可以使用V8引擎。 IrisCouch的一個人寫了couchjs來做到這一點(我已經看到他在堆棧溢出相當多)。

https://github.com/iriscouch/couchjs

而且對於視圖,過濾的複製,這樣的事情,你可以寫在二郎山而非JavaScript功能。我已經做到了這一點,並看到了50%左右的性能提升。

似乎可以用Erlang編寫列表功能:http://tisba.de/2010/11/25/native-list-functions-with-couchdb/

+0

謝謝你。 erlang的想法是一個很好的想法。我會檢查出 – ddouglascarr 2013-03-25 23:51:29

1

一般來說,不同的看法引擎會給你同樣的速度。

除了erlang,它更快。

原因是erlang是CouchDB的寫入內容,對於所有其他語言,數據需要轉換爲標準JSON然後發送到視圖服務器,然後轉換回本地erlang格式進行編寫。

但是,這種性能「提升」只發生在視圖生成上,這通常發生在一個請求的外部,或者只發生在改變的文檔上。

因爲在大多數情況下,視圖服務器之間的真實世界使用性能差異無關緊要。

這裏是所有的視圖服務器實現的列表:http://wiki.apache.org/couchdb/View_server

我從來沒有使用蟒蛇的,但如果這是你在哪裏舒服,去了。

+0

謝謝你。我特別關心的是_list函數,它在每次查詢時都運行在視圖返回的數據上。看起來我可能正在學習erlang。 – ddouglascarr 2013-03-31 02:34:24

+0

從看CouchDB列出它唯一值得編寫_list函數(在erlang或不),這是非常簡單的事情。如果您正在進行復雜的過濾/顯示,那麼最好在執行其餘工作的應用程序上進行。 (除非你沒有...) – Simon 2013-03-31 19:56:16