Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么这个for循环要求这么高?_Android_Python_Python 2.7_For Loop_Kivy - Fatal编程技术网

Android 为什么这个for循环要求这么高?

Android 为什么这个for循环要求这么高?,android,python,python-2.7,for-loop,kivy,Android,Python,Python 2.7,For Loop,Kivy,目前,这两个字典的长度约为35个键:值对 我一直在用这个函数把两个玩家的分数相加,然后打印出结果。然而,在我的笔记本电脑上计算需要几秒钟,在安卓手机上则需要几分钟。为什么这要求这么高 注释掉的方法同样慢 代码中是否存在严重的无效性 提前谢谢你 编辑我通过cProfiler运行了这个方法 def number_add(self, *args):#not tested yet if len(self.player1dict) == len(self.imported_ideas) and

目前,这两个字典的长度约为35个键:值对

我一直在用这个函数把两个玩家的分数相加,然后打印出结果。然而,在我的笔记本电脑上计算需要几秒钟,在安卓手机上则需要几分钟。为什么这要求这么高

注释掉的方法同样慢

代码中是否存在严重的无效性

提前谢谢你

编辑我通过cProfiler运行了这个方法

def number_add(self, *args):#not tested yet

    if len(self.player1dict) == len(self.imported_ideas) and len(self.player2dict) == len(self.imported_ideas):
        self.debug.text = 'Your Results:'
        self.scrollview.clear_widgets()
        self.scrollview.add_widget(self.answer_label)

        for i in self.imported_ideas:
            self.totalsdict[i] = self.player1dict[i] + self.player2dict[i]
        for i in self.totalsdict:
            if self.totalsdict[i] == 20:
                self.array_ans.append('You scored 20/20 for: ' + i)
            elif self.totalsdict[i] >14:
                self.array_ans.append('You scored very highly for: ' + i)
            elif self.player1dict[i] > 5 and self.player2dict[i] >5 or self.totalsdict[i] >= 13:
                self.array_ans.append('You scored highly for: ' + i) 
            else:
                pass

        '''for i in self.player1dict:
            if (self.player1dict[i] + self.player2dict[i])== 20:
                self.array_ans.append('You scored 20/20 for: ' + i)
            elif (self.player1dict[i] + self.player2dict[i]) >14:
                self.array_ans.append('You scored very highly for: ' + i)
            elif self.player1dict[i] > 5 and self.player2dict[i] >5 or (self.player1dict[i] + self.player2dict[i]) >= 13:
                self.array_ans.append('You scored highly for: ' + i) 
            else:
                pass'''


    else:
        self.debug.text = 'error, dictionary lengths not right'

    self.answer_label.text = "\n".join(self.array_ans) #a better method for presenting ideas
    self.answer_label.height=(self.r+10)*self.answer_label.font_size
ncalls tottime percall cumtime percall文件名:lineno(函数)
1    0.000    0.000    0.000    0.000 :1()
2 0.000 0.000 0.000 0.000初始值:478(_set_text)
5 0.000 0.000 0.000 0.000时钟。py:243(呼叫)
2 0.000 0.000 0.000 0.000阻尼涡旋。py:93(on_值)
2 0.000 0.000 0.000 0.000标签。py:163(\u触发器\u纹理\u更新)
5000.000 000 000.000 000 000 lang.py:1324(延迟呼叫)
1 0.000 0.000 0.000 0.000主管道。管道:201(编号\u添加)
4 0.000 0.000 0.000 0.000 scrollview.py:212(_get_vbar)
4 0.000 0.000 0.000 0.000 scrollview.py:239(\u get\u hbar)
1 0.000 0.000 0.000 0.000 scrollview.py:380(设置视口大小)
2 0.000 0.000 0.000 0.000 scrollview.py:383(在视口中)
2 0.000 0.000 0.000 0.000 scrollview.py:446(_update_effect_widget)
2 0.000 0.000 0.000 0.000 scrollview.py:452(_update_effect_x_bounds)
2 0.000 0.000 0.000 0.000 scrollview.py:459(_update_effect_y_bounds)
2 0.000 0.000 0.000 0.000 scrollview.py:466(_update_effect_bounds)
2 0.000 0.000 0.000 0.000 scrollview.py:485(更新效果)
1 0.000 0.000 0.000 0.000 scrollview.py:766(添加小部件)
1 0.000 0.000 0.000 0.000 scrollview.py:777(删除_小部件)
8 0.000 0.000 0.000 0.000小部件。py:204(_eq__;)
1 0.000 0.000 0.000 0.000小部件。py:212(\uuuuu self\uuuu)
1 0.000 0.000 0.000 0.000小部件。py:316(添加小部件)
1 0.000 0.000 0.000 0.000小部件。py:373(删除_小部件)
1 0.000 0.000 0.000 0.000小部件。py:392(清除小部件)
1 0.000 0.000 0.000 0.000小部件。py:539(获取顶部)
1 0.000 0.000 0.000 0.000小部件。py:552(获取中心)
2 0.000 0.000 0.000 0.000小部件。py:564(获取中心)
9 0.000 0.000 0.000 0.000{isinstance}
4 0.000 0.000 0.000 0.000{len}
1 0.000 0.000 0.000 0.000{“kivy.graphics.instructions.Canvas”对象的方法“add”}
10 0.000 0.000 0.000 0.000{“列表”对象的“附加”方法}
2 0.000 0.000 0.000 0.000{kivy.\u event.EventDispatcher'对象的方法'bind'
1 0.000 0.000 0.000 0.000{方法'disable'的''lsprof.Profiler'对象}
1 0.000 0.000 0.000 0.000{“str”对象的方法“join”}
1 0.000 0.000 0.000 0.000{方法'remove'of'kivy.graphics.instructions.Canvas'objects}

您是否有代码查看瓶颈在哪里?调用此函数时是否更改了词典?您知道问题是与应用程序逻辑还是与小部件有关吗?
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 <string>:1(<module>)
        2    0.000    0.000    0.000    0.000 __init__.py:478(_set_text)
        5    0.000    0.000    0.000    0.000 clock.py:243(__call__)
        2    0.000    0.000    0.000    0.000 dampedscroll.py:93(on_value)
        2    0.000    0.000    0.000    0.000 label.py:163(_trigger_texture_update)
        5    0.000    0.000    0.000    0.000 lang.py:1324(delayed_call_fn)
        1    0.000    0.000    0.000    0.000 main.py:201(number_add)
        4    0.000    0.000    0.000    0.000 scrollview.py:212(_get_vbar)
        4    0.000    0.000    0.000    0.000 scrollview.py:239(_get_hbar)
        1    0.000    0.000    0.000    0.000 scrollview.py:380(_set_viewport_size)
        2    0.000    0.000    0.000    0.000 scrollview.py:383(on__viewport)
        2    0.000    0.000    0.000    0.000 scrollview.py:446(_update_effect_widget)
        2    0.000    0.000    0.000    0.000 scrollview.py:452(_update_effect_x_bounds)
        2    0.000    0.000    0.000    0.000 scrollview.py:459(_update_effect_y_bounds)
        2    0.000    0.000    0.000    0.000 scrollview.py:466(_update_effect_bounds)
        2    0.000    0.000    0.000    0.000 scrollview.py:485(_update_effect_y)
        1    0.000    0.000    0.000    0.000 scrollview.py:766(add_widget)
        1    0.000    0.000    0.000    0.000 scrollview.py:777(remove_widget)
        8    0.000    0.000    0.000    0.000 widget.py:204(__eq__)
        1    0.000    0.000    0.000    0.000 widget.py:212(__self__)
        1    0.000    0.000    0.000    0.000 widget.py:316(add_widget)
        1    0.000    0.000    0.000    0.000 widget.py:373(remove_widget)
        1    0.000    0.000    0.000    0.000 widget.py:392(clear_widgets)
        1    0.000    0.000    0.000    0.000 widget.py:539(get_top)
        1    0.000    0.000    0.000    0.000 widget.py:552(get_center_x)
        2    0.000    0.000    0.000    0.000 widget.py:564(get_center_y)
        9    0.000    0.000    0.000    0.000 {isinstance}
        4    0.000    0.000    0.000    0.000 {len}
        1    0.000    0.000    0.000    0.000 {method 'add' of 'kivy.graphics.instructions.Canvas' objects}
       10    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
        2    0.000    0.000    0.000    0.000 {method 'bind' of 'kivy._event.EventDispatcher' objects}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
        1    0.000    0.000    0.000    0.000 {method 'remove' of 'kivy.graphics.instructions.Canvas' objects}