Skip to content

Python language selection

Michael-X-Net edited this page Feb 3, 2023 · 1 revision

Performance

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.

Anti-Trojan

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.

Low development threshold

There are many people involved in contributing to the development.

Including the interface, using html/css/js, many people will be able to participate.

Cross-platform

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.

Easy to publish and upgrade

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.

Adversarial Analysis

​Blocking can be analyzed only by capturing packets, which is easier than looking at the code.

Clone this wiki locally