2017-01-17 17 views
8

में मैं Kotlin 2 महीने के लिए ग्रहण के नवीनतम संस्करण के साथ किसी भी प्रदर्शन समस्या के बिना मेरे Windows 10 कंप्यूटर पर इस्तेमाल किया है। अब मैं intelliJ (क्योंकि यह जेटब्रेन भाषा है ...) के साथ कोटलिन के बारे में एक लाइव कोडिंग सत्र करना चाहता है, जो कि हाल ही में स्थापित है और हाल ही में ओएसएक्स कंप्यूटर पर पहले कभी भी उपयोग नहीं किया गया था। दो कंप्यूटरों में अच्छा हार्डवेयर है और मेरे परीक्षणों को सीमित नहीं कर रहे हैं।बिग संकलन समय इंटेलीजे

मेरे समस्या यह है कि हर बार जब वहाँ मेरे Kotlin कोड में एक संशोधन है, संकलन समय 8 सेकंड और 35 सेकंड के बीच है। अगर मैं चर बदलने

class TestKotlin { 
    var a = 1 
} 

"एक" और इसलिए फिर से निर्माण करने के लिए, यह हमेशा संकलन पूरा करने के लिए सबसे अच्छा मामलों में 8 सेकंड की जरूरत की जरूरत है: मैं minimalist कोड पर मेरे परीक्षण किया था।

चूंकि मैं बहुत सारे छोटे कार्यों और संकलनों के साथ एक लाइव कोडिंग सत्र करना चाहता हूं, इस प्रकार की देरी बहुत महत्वपूर्ण है। दर्शकों को प्रत्येक संकलन के परिणामों को देखने के लिए बहुत पहले इंतजार करना होगा, वे तर्कसंगत रूप से IntelliJ उपकरण से अच्छे प्रदर्शन की उम्मीद कर रहे हैं।

एक ही परियोजना में, मैं आदेश संकलन को गति प्रदान करने में अपनी विशेषता (एक भी विशेषता के साथ) जावा वर्ग उसी तरह करते हैं और संशोधित करने का प्रयास है, और यह संकलन करने से भी कम समय 1 सेकंड लेता है।

मैं करने की कोशिश की मैन्युअल रूप से उस के साथ कमांड लाइन में कोड संकलन:

kotlinc hello.kt -include-runtime -d hello.jar 
java -jar hello.jar 

मैं कुछ सभ्य संकलन बार था, भले ही वह 3 सेकंड के पास था।

जब मैं "संदेश" इंटेलीजे में स्क्रीन पर देखने, जबकि यह Kotlin कोड संकलन है, मैं इस देख सकते हैं:

Information:Kotlin: Kotlin JPS plugin version 1.0.6-release-127 
Information:Kotlin: Using kotlin-home = /Users/myUsername/Library/Application Support/IntelliJIdea2016.3/Kotlin/kotlinc 

यह सब संकलन समय के लिए यहाँ बंद हो जाता है, और उसके बाद लगभग तुरंत आगे क्या चरण:

Information:Kotlin: Kotlin Compiler version 1.0.6-release-127 
Information:17/01/17 11:38 - Compilation completed successfully in 11s 639ms 

शायद इंटेलिजे या इस तरह की कुछ कॉन्फ़िगरेशन में कोई समस्या है। मुझे कुछ ऐसा करने में कठिनाई हुई जो प्रदर्शन में सुधार कर सकती थी लेकिन कुछ भी मेरी मदद नहीं कर पाया ...

यदि मैं इंटेलिज में इंटेलिज में कोटलिन के साथ कुछ यथार्थवादी संकलन समय रखने में मेरी मदद कर सकता हूं तो मैं बहुत आभारी हूं!

+0

मैं इस प्रश्न को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि 'यह प्रश्न पुराना नहीं है, और उपकरण में अब इस समस्या का विकल्प नहीं है' विकल्प है। @OP क्या आप अभी भी इस समस्या का सामना कर रहे हैं? कोटलिन प्लगइन में सुधार के साथ, यदि आप हैं तो मैं बहुत हैरान हूं। – Mikezx6r

उत्तर

0

सुनिश्चित करें कि आप सेटिंग में उन बक्से जाँच की है बनाओ:

  • इंक्रीमेंटल Kotlin संकलन
  • Kotlin संकलक डेमॉन (रहता kotlinc प्रक्रिया जिंदा)
+2

"इनवॉलेशंस के बीच जिंदा प्रक्रिया को जिंदा रखें" और "सटीक वृद्धिशील संकलन सक्षम करें" पहले से ही मेरी वरीयताओं में चेक किया गया है। – Bastien7

+0

क्या एंड्रॉइड स्टूडियो में भी उपलब्ध हैं? मैं उन्हें नहीं ढूंढ सकता ... – lukle

+0

सामान्य सेटिंग्स में उनके लिए खोजें – voddan

1

यह समस्या KT-15491 के समान लगता है।

सुनिश्चित करने के लिए है कि यह अपने मामले भी है, निम्नलिखित सरल Kotlin कार्यक्रम पर अमल करने का प्रयास करें:

import java.io.File 
import kotlin.system.measureNanoTime 

fun main(args: Array<String>) { 
    val elapsedNs = measureNanoTime { File.createTempFile("tmp", "", null).deleteOnExit() } 
    println(elapsedNs.toDouble()/1000000000) 
} 

तो मुद्रित बीता हुआ समय एक दूसरे के एक अंश की तुलना में काफी अधिक है, की तुलना में है कि कारण है।

यह समस्या न केवल कोटलिन कंपाइलर को प्रभावित करती है बल्कि प्रत्येक जेवीएम प्रोग्राम जो अस्थायी फ़ाइल बनाने की कोशिश करता है, या SecureRandom कक्षा से संबंधित कोई अन्य कार्यवाही करने के लिए।

मुझे अपने विंडोज 7 नोटबुक पर प्रत्येक जेपीएस बिल्ड पर एक ही मंदी का अनुभव हुआ है। मैंने इस question में वर्णित सुरक्षा प्रदाताओं के आदेश के साथ कामकाज की कोशिश की है और इससे मदद मिली है।

+0

ऐसा लगता है कि यह मेरा मामला नहीं है: यह प्रोग्राम मेरे ओएसएक्स कंप्यूटर पर 0.03 सेकंड से कम प्रिंट करता है ... :(मैंने ग्रहण के साथ सभी प्रकार के कोटलिन प्रोग्राम को संकलित/चलाने की कोशिश की और मेरे पास बहुत छोटा संकलन समय है (लेकिन जैसा नहीं Kotlin के लिए IntelliJ के रूप में अच्छा ...) – Bastien7

+0

@ Bastien7 इन सवालों पर एक नज़र डालें: http://stackoverflow.com/questions/39636792/jvm-takes-a-long-time-to-resolve-ip-address- for-localhost और http://stackoverflow.com/questions/33289695/inetaddress-getlocalhost-slow-to-run-30-seconds/33289897 – Ilya

+1

हाँ आप सही हैं, अब इसके बारे में यूटैक पर इसके मुद्दे हैं, और आइडिया टीम ने पहले हमें ओएसएक्स समस्या को ठीक करने के लिए कहा था, लेकिन चूंकि हम कई ने उन्हें एक समाधान पूछा है, उन्होंने एक जेडीके पैच लागू करने की योजना बनाई है: https://youtrack.jetbrains.com/issue/KT-17523#comment=27 -2118243 – Bastien7