سؤال

عاطل هو محرر بيثون المفضل لدي. إنه يوفر قذيفة بيثون لطيفة وبديهية مفيدة للغاية للاختبار والاختبار والتصحيح، ومصحح أنيق.

ومع ذلك، فإن التعليمات البرمجية المنفذة تحت الخمول بطيئة بجنون. عن طريق بوعب يعني 3 أوامر من الحجم بطيء:

سحق

time echo "for i in range(10000): print 'x'," | python

يأخذ 0.052s،

عاطل

import datetime
start=datetime.datetime.now()
for i in range(10000): print 'x',
end=datetime.datetime.now()
print end-start

يأخذ:

>>> 0:01:44.853951

وهو ما يقرب من 2000 مرة أبطأ.

أي أفكار، أو الأفكار كيفية تحسين هذا؟ أعتقد أن لديه علاقة مع المصحح في الخلفية، لكنني لست متأكدا حقا.

آدم

هل كانت مفيدة؟

المحلول

المشكلة هي الناتج النص وليس المصحح.

لقد جربته فقط في نظام Q6600 (3GHz فيركلوكيد) وأبلغني أسوأ. ولكن من السهل أن نرى أنها تستمر في إضافة نص الإخراج.

حاولت تشغيله

1000 تكرارات => 7،8 ثانية 2000 التكرارات => 28،5 ثانية 3000 التكرارات => 70 ثانية

قمت ببعض الأشياء المنخفضة المستوى TK في الماضي وأعلم أن القطعة Tktext هي الحفاظ على النص في بنية BTREE. إن إلحاق النص بحرف هو أحد أسوأ الطرق للقيام به ولكن يبدو أن هذا ما يفعله الخمول. الطريقة العادية هي الحصول على المزيد من البيانات وإلحاق جزء أكبر من النص.

بشكل مثير للدهشة إذا كتبت طباعة "X N" الإخراج أسرع بكثير. 3000 التكرارات في 7 ثوان و 10000 الخاص بك في 19 ثانية.

وبالتالي فإن المشكلة هي بالتأكيد مع إلحاق الأحرف الفردية إلى الخطوط الحالية. لم يعرف مبرمج الخمول كيف يعمل Tktext.

وبالتالي فإن المشورة هي إضافة المزيد من الخطوط الجديدة إلى النص أو إخراج أكبر قدرات أكبر وليس فقط حرف واحد "X".

نصائح أخرى

المشكلة هي في القطعة النصية TQINTER، وإدارةها غير فعالة لخطوط طويلة جدا، وإنشاء واحدة. ستلاحظ ذلك، في حين أن أي جزء من خط طويل للغاية مرئي، فإن جميع التمرير بطيئا للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top