आप कुछ जावास्क्रिप्ट में गहन सामान कंप्यूटिंग कर कारण के लिए हैं, तो आप उन चीजों को याद (* और पढ़ें डेविड Mandelin के आपका इंजन पता होना चाहिए: अपने जावास्क्रिप्ट फास्ट प्रस्तुति बनाने के लिए कैसे - PDF, जहां वह और अधिक में यह वर्णन करता है विवरण *):
इनलाइन सब कुछ इनलाइन कर सकते हैं।
फ़ंक्शन कॉल बहुत महंगी
वस्तु का उपयोग महंगा
बहुरूपता आप प्रदर्शन खर्च कर सकते हैं कर रहे हैं, अपने चर और तर्क हमेशा सिर्फ एक ही डेटा प्रकार धारण करना चाहिए।
मठ वस्तु विशेष रूप से धीमी गति से नहीं है, लेकिन तुम वैसे भी वहाँ distance()
समारोह नहीं मिलेगा, और Math.method()
कॉल के माध्यम से बंद होने से अपने तरीकों तक पहुँचने, अक्षम है।
तो sqrt
भी बदतर x*x
, कस्टम random
समारोह आप के लिए बेहतर हो सकता है, ज़ाहिर है, है, पाई, छोरों में कैश किया जाना चाहिए min
और max
शायद के रूप में अच्छी तरह से त्रिकोणमिति और लघुगणक गति के बारे में कोई जानकारी नहीं बचा जाना चाहिए, ।
पी.एस .: आप ((x >= 0 ? x : -x) + 0.5) >> 0
जैसे काम कर सकें, Math.ceil(Math.abs())
को बदलने के लिए, लेकिन याद रखें - जब मैं कहते हैं कि "गहन" - मैं क्रंचिंग संख्या, डाटा प्रोसेसिंग, भौतिक विज्ञान, ग्राफिक्स और चीजें हैं जो की तरह के बारे में बात कर रहा हूँ। सामान्य जावास्क्रिप्ट साइटों या आरआईए के लिए - आप सामान नहीं करना चाहिए जो मैं यहां सुझाव दे रहा हूं। इसके अलावा, अधिकांश गति हैक्स में उनके side effects
संभवतः 'गणित' विधियों को उस भाषा में कार्यान्वित किया जाता है जिसमें जावास्क्रिप्ट को लागू किया जाता है (यानी एक सामान्य ब्राउज़र में सी या सी ++) ताकि वे जावास्क्रिप्ट –
में जो कुछ भी लिख सकें उससे कहीं अधिक तेज हो। ** क्या आपने ** ** प्रदर्शन में अंतर? अपने सभी लक्षित ब्राउज़रों में? –
अच्छी तरह से 'मठ' में "दूरी" विधि नहीं है, और वह पूर्णांक रूपांतरण तेज़ हो सकता है लेकिन यह 'Math.floor() 'या' Math.round()' से भी अर्थात् अलग है। इस तरह की चीज का परीक्षण करने के लिए आप [jsperf] (jsperf.com) का उपयोग कर सकते हैं। – Pointy