Mark Harviston
Mark Harviston
Yeah that's not great. It'd be good to get profile information out, to see why it's running slowly.
ok, so most time is spent here: https://github.com/harvimt/quamash/blob/master/quamash/__init__.py#L187 and here: https://github.com/harvimt/quamash/blob/master/quamash/__init__.py#L332-L342 somewhat unsurprising. possible improvements: - make `self.__timers` a `set` (may make perf worse since self.__timers is usually small) -...
Qt's IO subsystem just isn't that fast? Context switches between Qt & Python are so slow it doesn't matter? I think that's about as performant as we can get without...
ugh that's the low-level test. I only wrote the low-level tests because the high level tests failed and I didn't know why. this code is what stops the loop when...
no. basically I mean if there's a Qt Library for something IO-related (like say [QNetworkRequest](https://doc.qt.io/qt-5/qnetworkrequest.html)) vs a python-native module that doesn't depend on Qt (like say [aiohttp](https://aiohttp.readthedocs.io/en/stable/)), you should use...
that would extend to python built-in functions as well, like local file access, and direct network sockets.
Asynker is interesting... it's gives me most of what I wanted out of quamash... though not subprocess support. (unless I put the subprocess in a thread?) QAbstractEventDispatcher would allow you...
things to try: set the default executor to a concurrent.futures.ThreadPoolExecutor loop.set_default_executor(concurrent.futures.ThreadPoolExecutor(10)) Modify getaddrinfo on the event loop (say by modifying QEventLoop) ``` def getaddrinfo(self, host, port, *, family=0, type=0, proto=0,...
the sync version of getaddrinfo I sent you doesn't actually handle exceptions correctly: try: ``` def getaddrinfo(self, host, port, *, family=0, type=0, proto=0, ``` flags=0): future = asyncio.Future() try: if...
On Windows, Quamash doesn't extend the default event loop (selector), instead it extends the Proactor event loop. (this is because I find the Proactor more useful, since it supports subprocesses...)...