我正在撰寫一篇關於XS的演講,並且我需要知道社區何時認爲適合於XS。什麼時候應該使用XS?
回答
我能想到的至少有三個理由使用XS:
- 您想要在Perl 5
- 訪問C庫您的代碼塊可證明是減慢你的程序如果用C語言編寫
- 它會更快您需要訪問的XS
原因僅提供1東西是明顯的,應該不需要交代。
當你真的需要理由2不太明顯。通常你最好查看代碼的結構。如果您有profiled your code並且有benchmark和test suite來證明XS代碼更快更正確,則只應調用原因2。
原因3是一個危險的原因。實際上你很少需要看看Perl的膽量來做些什麼,但至少有one valid case。
在少數情況下,更好的內存管理是使用XS的另一個原因。例如,如果您有一些類似類型的非常大的對象塊,則可以通過XS更高效地管理它。例如,KinoSearch
將此用於令牌,例如,大字符串中的開始和結束偏移量可以通過XS更有效地管理,而不是作爲大量標量池來管理。 PDL
也有它的內存管理方面,以及速度。
有人建議將這種方法的一部分長期集成到核心Perl中,最初是因爲它提供了一個使線程中的共享數據更好的機會:請參閱:http://openparallel.com/2011/07/05/a-new-hope-for-efficient-safe-data-sharing-between-threads-in-perl/。
這是一個很好的觀點,我認爲它屬於理性2,但我的理由2太狹隘。我認爲理由2應該是「爲了更有效地利用計算機的資源」。 –
@Chas。歐文斯同意了。您通常會使用不同的工具對其進行評估,並且在32位系統上可能會更早採用此策略,因爲內存具有硬限制,但是是另一個資源問題 –
- 1. 什麼時候應該使用AWS,什麼時候不使用
- 2. 什麼時候應該使用sed,什麼時候應該使用awk
- 3. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
- 4. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 5. 什麼時候應該使用async/await,什麼時候不用?
- 6. 什麼時候應該使用datagrid,何時應該使用datagridview?
- 7. 什麼時候應該使用$(object),何時應該使用$ object?
- 8. 什麼時候應該使用FSharpFunc.Adapt?
- 9. 什麼時候應該使用_aligned_malloc()?
- 10. 什麼時候應該使用`use`?
- 11. 什麼時候應該使用$ rootScope?
- 12. 什麼時候應該使用$(document).ready?
- 13. 什麼時候應該使用html5 sessionStorage?
- 14. 什麼時候應該使用OWIN Katana?
- 15. 什麼時候應該使用流?
- 16. 什麼時候應該使用Promises?
- 17. 什麼時候應該使用setScriptTimeout?
- 18. 什麼時候應該使用助手?
- 19. 什麼時候應該使用Datomic?
- 20. 我什麼時候應該使用javax.swing.SwingUtilities.invokeLater()?
- 21. 什麼時候應該使用const?
- 22. 什麼時候應該使用退貨?
- 23. 什麼時候應該使用getElementById?
- 24. 什麼時候應該使用Solandra
- 25. 我什麼時候應該使用UITableViewCellSeparatorStyleSingleLineEtched?
- 26. 什麼時候應該使用@android:id /?
- 27. 什麼時候應該使用geom_map?
- 28. 什麼時候應該使用scala.util.DynamicVariable?
- 29. 什麼時候應該使用RESTful?
- 30. 什麼時候應該使用ListCollectionView?
您的談話/演講是否可用? – Zaid