A Journey Into Non-Virtual PolymorphismRud Merriam | A Journey into Non-Virtual Polymorphism 2 Who Doesn’t Recognize This?? 1990 Borland Turbo C++Cppcon 2023 | Rud Merriam | A Journey into Non-Virtual Polymorphism 3 Background ● Experience – Medium.com (https://medium.com/@rudmerriam)Cppcon 2023 | Rud Merriam | A Journey into Non-Virtual Polymorphism 4 Polymorphism ● Greek: “many forms” (Obligatory statement) ● The use of a single variableCppcon 2023 | Rud Merriam | A Journey into Non-Virtual Polymorphism 5 Polymorphic Variables ● Base class pointer to derived class – Virtual functions are not bad! ● Standard Template Library0 码力 | 43 页 | 536.84 KB | 6 月前3
Optimizing Away Virtual Functions May Be PointlesscarePhoto by Tech Nick on unsplashSimple benchmark class Base { public: int concrete() const; virtual int virt() const; }; void benchmark(Base *b, size_t num_iterations) { auto start = Clock::now(); virt_duration = end-start;There are interesting technical details and surprising conclusions that virtual functions can be actually faster. Since CPU architectures are mentioned, I'd expect to see deep nt-vs-inheritance-vs-other- ways-performanceDoes it even matter?Conclusions ● The notion that “virtual functions are slower” is flat out wrong. ○ Which is not to say they are faster ○ Some of the suggested0 码力 | 20 页 | 1.19 MB | 6 月前3
BehaviorTree.CPP: Task Planning for Robots and Virtual AgentsHierarchical State Machines The graphical representation of the nodes in a BT has a meaning. Children are ordered from left to right.Are Behavior Trees better than Hierarchical State Machines? HSM BT BT.CPPState CPPState Machines Behavior Trees Learning curve more familiar it needs some practice Concurrency no yes Scalability poor better Readability scales very poorly better Behavior Trees VS Hierarchical Hierarchical State Machines"Tick" and Node types ● The “tick” is the signal that we propagate from the root to the leaves. ● The leaves of the tree are the Actions. I.e. the user-defined code that should be0 码力 | 59 页 | 7.97 MB | 6 月前3
PyArmor Documentation v8.1.9How the documentation is organized 1.2. Installation 1.2.1. Installation from PyPI 1.2.2. Using virtual environments 1.2.3. Installation from source 1.2.4. Run Pyarmor from Python script 1.2.5. Clean uninstallation 3.4. Copying package data files 1.3.5. Checking runtime key periodically 1.3.6. Binding to many machines 1.3.7. Using outer file to store runtime key 1.3.8. Localization runtime error 1.3.9. Packing obfuscated party libraries 2.9. Register Pyarmor 2.9.1. Initial Registration 2.9.2. Registering in other machines 2.9.3. Using group license 2.9.4. Upgrading old Pyarmor license 3. References 3.1. Concepts 30 码力 | 131 页 | 111.00 KB | 1 年前3
PyArmor Documentation v8.5.10is organized 1.2. Installation 1.2.1. Prerequisite 1.2.2. Installation from PyPI 1.2.3. Using virtual environments 1.2.4. Installation from source 1.2.5. Installation in offline device 1.2.6. Termux 3.4. Copying package data files 1.3.5. Checking runtime key periodically 1.3.6. Binding to many machines 1.3.7. Using outer file to store runtime key 1.3.8. Localization runtime error 1.3.9. Packing obfuscated from PyPI 1.2.2.1. Installed command 1.2.2.2. Start Pyarmor by Python interpreter 1.2.3. Using virtual environments 1.2.4. Installation from source 1.2.5. Installation in offline device 1.2.6. Termux0 码力 | 193 页 | 154.05 KB | 1 年前3
The Way To Go - 2012...............................................................527 19.8 Multiprocessing on many machines .....................................................................528 19.9 Using a ProxyStore system for call centers in Go. ..............................................561 21.3 Atlassian—a virtual machine cluster management system. ...................................562 21.4 Camlistore—a content We’ve had many lessons since then. Things like garbage collection and exception handling and virtual machines, which used to be crazy talk, are now accepted without question. The complexity of C++ (even0 码力 | 629 页 | 4.85 MB | 1 年前3
PyArmor Documentation v6.2.7dist/pytransform_bootstrap --exact __init__.py 2. Then create virtual python environment to run the obfuscated scripts, move the bootstrap package to virtual python library. For example: # For windows mv dist function main, or anywhere they could be executed as module site is imported. After that in the virtual environment python could run the obfuscated scripts directly, because the module site is automatically Refer to https://docs.python.org/3/library/site.html Note The command pyarmor doesn’t work in this virtual environment, it’s only used to run the obfuscated scripts. Note Before v5.7.0, you need create0 码力 | 159 页 | 123.91 KB | 1 年前3
PyArmor Documentation v6.3.1dist/pytransform_bootstrap --exact __init__.py 2. Then create virtual python environment to run the obfuscated scripts, move the bootstrap package to virtual python library. For example: # For windows mv dist function main, or anywhere they could be executed as module site is imported. After that in the virtual environment python could run the obfuscated scripts directly, because the module site is automatically Refer to https://docs.python.org/3/library/site.html Note The command pyarmor doesn’t work in this virtual environment, it’s only used to run the obfuscated scripts. Note Before v5.7.0, you need create0 码力 | 161 页 | 124.89 KB | 1 年前3
PyArmor Documentation v6.2.8PyArmor Documentation, Release 6.2.0 2. Then create virtual python environment to run the obfuscated scripts, move the bootstrap package to virtual python library. For example: # For windows mv dist/ function main, or anywhere they could be executed as module site is imported. After that in the virtual environment python could run the obfuscated scripts directly, because the module site is automatically Refer to https://docs.python.org/3/library/site.html Note: The command pyarmor doesn’t work in this virtual environment, it’s only used to run the obfuscated scripts. Note: Before v5.7.0, you need create0 码力 | 153 页 | 483.38 KB | 1 年前3
Celery 1.0 Documentationworker servers. A worker server is a networked machine running celeryd. This can be one or more machines, depending on the workload. The result of the task can be stored for later retrieval (called its survives most error scenarios, and your tasks will never be lost. Dis- tributed Runs on one or more machines. Supports clustering when used in combination with RabbitMQ. You can set up new workers without Setting up RabbitMQ To use celery we need to create a RabbitMQ user, a virtual host and allow that user access to that virtual host: $ rabbitmqctl add_user myuser mypassword $ rabbitmqctl add_vhost0 码力 | 123 页 | 400.69 KB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













