利用xrange替换range,降低内存的使用
diff --git a/dubbo/client.py b/dubbo/client.py
index 6c149f4..f1bbbcc 100644
--- a/dubbo/client.py
+++ b/dubbo/client.py
@@ -152,7 +152,7 @@
hosts_weight.append(int(weights.get(host, '100')))
hit = randint(0, sum(hosts_weight) - 1)
- for i in range(len(hosts)):
+ for i in xrange(len(hosts)):
if hit <= sum(hosts_weight[:i + 1]):
return hosts[i]
diff --git a/dubbo/codec/decoder.py b/dubbo/codec/decoder.py
index 0e133dc..2399ab7 100644
--- a/dubbo/codec/decoder.py
+++ b/dubbo/codec/decoder.py
@@ -164,7 +164,7 @@
:return:
"""
value = u''
- for i in range(length):
+ for i in xrange(length):
ch = self.read_byte()
if ch < 0x80:
value += unichr(ch)
@@ -232,7 +232,7 @@
field_length = self.read_int()
field_names = []
- for i in range(field_length):
+ for i in xrange(field_length):
field_names.append(self.read_string())
self.field_names.append(field_names)
return self.read_object()
@@ -264,23 +264,23 @@
if 0x70 <= value <= 0x77:
_type = self.read_type() # type对于Python来说没有用处
length = value - 0x70
- for i in range(length):
+ for i in xrange(length):
result.append(self.read_next())
# 固定长度的无类型短小列表
elif 0x78 <= value <= 0x7f:
length = value - 0x78
- for i in range(length):
+ for i in xrange(length):
result.append(self.read_next())
# 固定长度的有类型列表
elif value == 0x56:
_type = self.read_type()
length = self.read_int()
- for i in range(length):
+ for i in xrange(length):
result.append(self.read_next())
# 固定长度的无类型列表
elif value == 0x58:
length = self.read_int()
- for i in range(length):
+ for i in xrange(length):
result.append(self.read_next())
# 可变长度的有类型列表
elif value == 0x55:
@@ -391,7 +391,7 @@
field_length = self.read_int()
field_names = []
- for i in range(field_length):
+ for i in xrange(field_length):
field_names.append(self.read_string())
self.field_names.append(field_names)
diff --git a/dubbo/codec/encoder.py b/dubbo/codec/encoder.py
index c2f0765..4e21c3a 100644
--- a/dubbo/codec/encoder.py
+++ b/dubbo/codec/encoder.py
@@ -161,7 +161,7 @@
body.append(ord('Z'))
# 因为在上面的逻辑中没有对byte大小进行检测,所以在这里进行统一的处理
- for i in range(len(body)):
+ for i in xrange(len(body)):
body[i] = body[i] & 0xff
return body
diff --git a/dubbo/common/util.py b/dubbo/common/util.py
index f53bb1c..2ea4873 100644
--- a/dubbo/common/util.py
+++ b/dubbo/common/util.py
@@ -122,11 +122,4 @@
if __name__ == '__main__':
- def test():
- while 1:
- print get_invoke_id()
-
-
- for i in range(10):
- thread = threading.Thread(target=test)
- thread.start()
+ pass
diff --git a/tests/dubbo_test.py b/tests/dubbo_test.py
index ebc94e2..ba63278 100644
--- a/tests/dubbo_test.py
+++ b/tests/dubbo_test.py
@@ -109,13 +109,13 @@
# @unittest.skip('skip performance test')
def test_multi_threading(self):
- for i in range(10):
+ for i in xrange(10):
thread = threading.Thread(target=self._run_num)
thread.start()
# @unittest.skip('skip performance test')
def test_performance(self):
- for i in range(10):
+ for i in xrange(10):
self.dubbo.call('echo18')
def test_auto_rule(self):
diff --git a/tests/run_test.py b/tests/run_test.py
index 45029c8..df61476 100644
--- a/tests/run_test.py
+++ b/tests/run_test.py
@@ -16,10 +16,10 @@
self.dubbo = DubboClient('me.hourui.echo.provider.Echo', zk_register=zk)
def test_run(self):
- for i in range(10):
- # thread = threading.Thread(target=run, args=(self.dubbo,))
- # thread.start()
- self.dubbo.call('echo18')
+ for i in xrange(10):
+ thread = threading.Thread(target=run, args=(self.dubbo,))
+ thread.start()
+ # self.dubbo.call('echo18')
def pretty_print(value):
@@ -27,7 +27,7 @@
def run(_dubbo):
- for j in range(10000000):
+ for j in xrange(1000):
_dubbo.call('echo18', timeout=1)