-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Python language selection
Michael-X-Net edited this page Feb 3, 2023
·
1 revision
I was worried about this problem at the beginning, but after practice, I found that there is no problem at all.
* Network communication, the main bottleneck is the network delay, the delay level is generally 60-200ms, and the serious one is 600-1500ms.
The code execution time is at the 0.1ms level, which is basically ignored
* Time-consuming all use native library
The most time-consuming thing is encryption. With OpenSSL, the CPU consumption increased by encryption is completely unfeeling.
I did try SSL implemented in pure python, but it was too slow and the performance was unacceptable.
* Standard python library, not optimal
The biggest experience is the implementation of Queue, which uses polling + sleep
Inaccurate timing and high cpu load.
Many libraries of the project have been streamlined and implemented by themselves, and their performance has been optimized.
* Algorithm optimization, prior to language
The development efficiency of python is high, so that users have the energy to optimize.
Using the correct algorithm can fundamentally solve the problem.
On the one hand, it prevents Trojan horses from being added during distribution;
On the other hand, prevent domestic anti-virus software from falsely reporting viruses.
Because the python binary file is officially downloaded, there is no problem with the file hash. The codes are all in plain text, and users can identify them by themselves if there is a virus report.
There are many people involved in contributing to the development.
Including the interface, using html/css/js, many people will be able to participate.
Currently supported platforms: Windows full series, Linux, MacOS, OpenWrt, Android
IOS also just needs time to figure it out.
One piece of code is executed on all platforms, and only needs to be dealt with in individual details, and the network coding part is common.
Reduced development costs.
If it is a binary package, the github download will go to amazon, and it will be blocked. This is the case for the android version of the installation package. The downloaded source code is not blocked, just overwrite it after downloading.
Blocking can be analyzed only by capturing packets, which is easier than looking at the code.