利用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)