Efficient use of resources when working with ZennoPoster

Table of contents


ZennoPoster is a multithreaded program and processes a lot of information in each thread, requiring significant computer resources. This article will help you customize the program for your computer, allowing you to use its resources as efficiently as possible.

User time

Most important resource. CPU time is cheap, RAM is even cheaper. The only thing that really matters is your personal time.

When creating the program, we first of all saved this resource.

RAM

Each thread in ZennoPoster is an isolated browser with its own cookies (about 13 types), cache, proxy, User Agent and all other data that is needed for full user emulation.

When calculating the amount of RAM required for the normal operation of the program, several factors must be taken into account:

  1. The site you are working with. All sites are very different and differ in the consumption of RAM, sometimes by an order of magnitude. Thus, the automation of one site can work in 100 threads, and another in 20 on the same machine. Try to disable Flash, images and other resources if they are not needed to work with the site.

  2. Files . Files to speed up work are stored in RAM (otherwise there will be problems with access to the hard disk). If you use your copy of the file for each thread (this happens when using lists and tables without synchronizing with the file), then, accordingly, each thread requires additional RAM to store this file. Keep in mind that tables in RAM take up much more space than the original file on your hard drive. Lists are not as demanding as tables, however, they also grow in RAM. For example, in RAM, a table based on a * .csv file of 10 MB in 100 threads without synchronization with the file may take 5 GB. Try not to use lists and tables in "no sync" mode with the file unnecessarily.

  3. See item (2) in the Processor section.

  4. Search by picture . This feature wastes a lot of RAM. But very useful.

CPU

Each thread in ZennoPoster builds a DOM model, renders an image, executes JavaScript, handles events, handles animation, etc. all this requires processor resources. Also, the processor is loaded with periodic reboots of instances. There are several ways to save CPU:

  1. Disable the processing of unnecessary elements: Flash, pictures, scripts and everything that is not needed. Please note that if the site is well protected, this may affect the ban of accounts. Those. registration will pass, but the created account will raise suspicions and may be banned in the future.

  2. (This item is relevant only when working on the Firefox 45 engine) In the program settings, there is a possibility to regulate the number of threads in one process. By increasing this parameter, you slightly save memory and processor, but there are additional delays in mouse and keyboard emulation. About emulation read on.

  3. Mouse and keyboard emulation slightly increases the CPU consumption and creates the effect described in (2). But sometimes you just can't create an account without it. Also, emulation when registering an account reduces the likelihood of an account being banned in the future with its further use.

  4. Software captcha recognition when using modules from CapMonster also consumes processor. How long one processor core takes to recognize a captcha is written in CapMonster when testing a module. In fact, even if you spend 10 seconds of the processor core (although this does not happen, usually it is less than a quarter of a second) to recognize a captcha, it is still cheaper than sending a captcha to manual recognition services.

  5. Search by picture wastes CPU resources too. But it still remains a very useful feature.

Thread time

Pay attention to this parameter. During captcha recognition in manual recognition services, the project is idle for about 15 seconds (while the service workers recognize your captcha).

During this time, the processor practically does not work for this thread.

Due to this (if the project has such an action), the total number of threads that can be launched on one machine increases dramatically. Those. You can run 30 threads on which your project always opens web pages without captcha recognition (a regular parser, for example). And it will take up all the CPU resources.

Or 150 threads with a project (account registrar), in which there is captcha recognition through services. And it will take up all the RAM.

Likewise with confirmation of registration by e-mail, when the thread is waiting for a letter. In this case, idle thread also occurs.

Internet channel

Everything is simple here. You open a web page - at the same time it is downloaded from the server and all the pictures, Flash, scripts, etc. that are on it. If you clear the cache, then everything is downloaded constantly when the project is running, if not, then the consumption of this resource is greatly reduced.

Usually the cache needs to be cleaned. Without clearing the cache, the web resource will understand that you have already entered it, even if you are using a proxy.

The Internet channel can be wide, however, limit the operation of the program due to the small number of allowed open connections, about which read below.

Open connections

You can find out what it is from Google, and how many such connections your network supports, you can find out in ZennoProxyChecker . It has a channel test and online monitoring.

A thread with an installed proxy requires 2 connections. Without proxy - up to 32.

Usually connections are cut by home providers, but more often by modems, usually about 300 are available, then the modem simply stops responding, while dedicated servers support thousands (15000 on servers from hetzner.de ).

Please note that ProxyChecker uses connections. From 1 connection per ProxyChecker thread.

As a result

Each project may require a different amount of resources. One can use 15 MB of RAM per thread, the other 1 GB, similarly with processor resources - it all depends on the tasks.

When creating the program, we first of all saved your time, everything else is easy to customize and scale.

Setting the default number of streams

In ZennoPoster settings you can set the maximum number of threads that can be simultaneously launched.

If you have read the previous points, then it is already clear to you that the number of threads depends very much on the project and is manually selected individually for your tasks. To do this, the number of threads is simply added smoothly until one of the computer's resources is exhausted.

One nuance should be taken into account: the processor consumption can be slightly exceeded, i.e. if you have it loaded by 100%, an increase in threads by 10-15% will practically not change anything, and most importantly, it will not worsen. It's just that the threads will wait some time for these resources to be released.

RAM, on the contrary, should not be completely filled, it is always better to leave 10-30%. If it ends, it may lead to ZennoPoster and all other programs on your computer crashing.

Same speed as sockets

Our unscrupulous competitors (let's not point the finger :) claim that their program can run at socket speed if you disable the loading of Flash, scripts, images, etc.

In fact it is not. The browser will never run at the speed of direct http requests. Direct requests are 50-100 times faster. You can verify this by running our ZennoProxyChecker on a dedicated server with 15000 threads. When testing on hetzner.de servers, 15,000 threads ran out of free connections, their network equipment no longer supports them, and the processor and RAM would easily be enough for 50,000.