Comments (5)
I believe the issue is this method since it loops through whole byte array: https://github.com/hazelcast/hazelcast-python-client/blob/master/hazelcast/serialization/input.py#L84
from hazelcast-python-client.
Nice catch @gokhanoner!
@mdumandag could you please take a look at this when you are available? Thanks!
from hazelcast-python-client.
Thanks for the report. I will be working on that soon
from hazelcast-python-client.
Moving to 4.0. Learned that this can be solved easily with 4.0 changes.
from hazelcast-python-client.
This issue is fixed for the current master. The problematic for loop is replaced with the standard library implementation so the results are on par with Java right now. We cannot do the same thing for backward compatibility reasons for the 3.12.z branch, so I am closing this issue now.
The test durations are like below on my laptop.
Java - with byte[] - 80ms
Map Size = 10000
2020-10-15T13:29:36.389Z
Entries Iterated = 10000
2020-10-15T13:29:36.462Z
10765799481275
Python with byte[] - 150ms
--------------------------------------
USING SYNC...
map size: 10000
WITH ITERATOR...
2020-10-15 16:38:23.268612 start
2020-10-15 16:38:23.434704 stop
list length: 10000
WITHOUT ITERATOR...
2020-10-15 16:38:23.434737 start
2020-10-15 16:38:23.594758 stop
list length: 10000
--------------------------------------
USING ASYNC...
map size: 10000
WITH ITERATOR...
2020-10-15 16:38:23.598606 start
2020-10-15 16:38:23.751234 stop
list length: 10000
WITHOUT ITERATOR...
2020-10-15 16:38:23.751268 start
2020-10-15 16:38:23.903048 stop
list length: 10000
Java - with String - 150ms
Map Size = 10000
2020-10-15T13:40:09.295Z
Entries Iterated = 10000
2020-10-15T13:40:09.440Z
-217038305000
Python - with String - 200ms
--------------------------------------
USING SYNC...
map size: 10000
WITH ITERATOR...
2020-10-15 16:40:37.001457 start
2020-10-15 16:40:37.209843 stop
list length: 10000
WITHOUT ITERATOR...
2020-10-15 16:40:37.209875 start
2020-10-15 16:40:37.414970 stop
list length: 10000
--------------------------------------
USING ASYNC...
map size: 10000
WITH ITERATOR...
2020-10-15 16:40:37.420307 start
2020-10-15 16:40:37.607766 stop
list length: 10000
WITHOUT ITERATOR...
2020-10-15 16:40:37.607794 start
2020-10-15 16:40:37.803686 stop
list length: 10000
from hazelcast-python-client.
Related Issues (20)
- [TRACKING ISSUE] Disallow different types of generic records in GenericRecordBuilder.setGenericRecord API-1773 HOT 1
- [TRACKING ISSUE] Add IMap.deleteAsync HOT 1
- [TRACKING ISSUE] Explicitly specify executor for CF calls in the 'client' package [HZ-2004] HOT 1
- Unable to recreate an IAtomicLong object with the same name [AtomicValue[myIAtomicLong] is already destroyed!] HOT 1
- Extreme slow down when using Map#lock/unlock from multiple threads [API-1968] HOT 2
- [TRACKING ISSUE] Do not try to connect to the old member list after the cluster changes [API-2038] HOT 1
- how to define long varchar in hazelcast python client? HOT 7
- [TRACKING ISSUE] Introduce a property to control the reconnection behavior of the client [API-2036]
- Reporting a vulnerability
- Make HazelcastClient context manager aware (PEP-343)
- PythonObjectSerializer raise 'utf-8' codec can't decode byte HOT 2
- [TRACKING ISSUE] [TPC] Allow TLS sockets in TPC Bootstrapping [HZ-2764]
- Potential memory leak: lock not removed from proxies when the lock is destroyed [API-2129] HOT 1
- [TRACKING ISSUE] Make tpcEnable for client configurable through system property.
- [TRACKING ISSUE] Promote alto auth codecs to stable [API-2134]
- [TRACKING ISSUE] TPC default to 1 connection
- [TRACKING ISSUE] Fix the `ReliableTopicConfig.setName` method to allow empty names [HZ-2274] [API-2172]
- [TRACKING ISSUE] Continue trying if initial membership event retrieval fails and client is failover [API-2171]
- [TRACKING ISSUE] NearCachedClientMapProxy getAsync fix double invocation [API-1811]
- `linter_docs_mypy.yaml` action fails due to `Sphinx version error`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hazelcast-python-client.