Jump to content

Recommended Posts

Posted

Introduction

 

Mozilla Firefox is considered one of the better browsers currently available. That said people always want to tweak the good stuff to make it better. In this article we look at how we can improve the performance of Firefox to get the most out of our internet connection, and make browsing a more pleasurable experience.

 

There are many such articles on the web that list settings to improve Firefox's performance, without any real explanation of what is being changed. Many of these articles copy verbatim settings from each other, and some of the settings are of questionable value. If such settings were generically good for improving the performance, then they would be set by default in Firefox. This article explains how someof the settings work and their implications. We give advice on settings, however there is no hard and fast rules, and you should experiment as every PC and internet connection setup is different.

Configuration

 

In order to tweak the software, we need to access it’s configuration interface. In Firefox, all we need to do is type about:config in the address bar, and press Enter. This should give you something like the following in Firefox:

ffconfig.gif

 

 

From this window we can change any settings. All we need to do is find the necessary setting, and double click on it to change it. This will either toggle it’s setting, or bring up a window for you to enter a setting of your choice.

 

Pipelining

 

The first thing we need to do is enable pipelining. Pipelining enables multiple HTTP requests to be sent, even before a response is received from the server. You should note that this setting may not work correctly with some servers that do not support pipelining, therefore you may need to disable this for some websites; however experience shows that virtually all websites work without problem.

 

In order for pipelining to work, the browser must be configured to use HTTP 1.1. This is in fact the default setting, however you should verify this by checking the setting network.http.version is set to 1.1 – if not, then change it. Another requirement for pipelining to work is the setting network.http.keep-alive is set to True. This setting means that the HTTP connection can be ‘kept alive’ for multiple requests, rather than only being used for a single request. Again, the default setting is True, so this should not have to be changed.

 

Pipelining has two settings, one for if you are using a proxy server, and one for if you are not. If you are unsure then you should set both of these to true to be on the safe side. The settings you need to change are network.http.pipelining and network.http.proxy.pipelining, and should be set to True.

 

Once pipelining is enabled, it is necessary to set the maximum number of requests to pipeline at once. This value can be from 1 to 8, where 1 is effectively disabling pipelining. The higher the value, the longer the delay will be before the first request completes, however the last request will finish sooner. So this means it will take longer to start to load the page, but the page will finish loading sooner. Also, if a connection fails, the time out period will be longer for higher values. We would recommend setting this value to 8, however you may experiment with different values.

 

Connections

 

The number of connections Firefox can make to servers will impact the speed at which it can retrieve information. However if this is too high, then it will slow the application down as it tries to manage all the connections. The network.http.max-connections setting controls the total number of connections that can be maintained at any one time. The default setting is 24. We recommend for dial up to set this to 32, and for broadband take 32 and add 2 for every 1mbps of connection speed you have (so for a 2mbps connection set to 36). You may experiment with this setting to find an optimum for you specific configuration.

 

You can also control the maximum number of connections to each server (although this will always be limited by the above total setting). This is controlled by network.http.max-connections-per-server and has a default of 8. This is fine for dial up, but add 1 for every 1mbps of connection speed you have for broadband. Note that if you are using a proxy server to retrieve information, this setting will limit the connections as all connections will be to the proxy server. In these instances, set this value to the same as network.http.max-connections.

 

You can also define the number of persistent connections, these connections can be reused for multiple requests and speed up data transfer. There are two settings network.http.max-persistent-connections-per-proxy for if you are using a proxy server and network.http.max-persistent-connections-per-server for if you are not. If in doubt set both of these. network.http.max-persistent-connections-per-proxy should be set to the same as network.http.max-connections-per-server and network.http.max-persistent-connections-per-server should be half this value, but should not exceed 10 (integers only, so round off if you are dividing an odd number).

 

Preventing Firefox from attempting to us IPv6 DNS lookup can also speed up browsing. The setting network.dns.disableIPv6 should be set to True to disable to IPv6 lookup. If you are on a network that uses IPv6, this should be left to False, however few networks currently use IPv6.

 

Page Rendering

 

Controlling how Firefox renders, or displays, the page can have an impact on how quickly it loads.

 

The setting content.notify.backoffcount controls how many times the page can be rendered while the page is loading. It renders what is available of the page at periodic intervals. If this setting is disabled (set to 0) then the page will not render until it has fully loaded; this will then consequently slow down the time it takes for the page to start to appear. If set to -1, then there is no limit on the number of times it reflows the page; this is the default setting. You can set this to any positive integer, and it will only reflow the page that many times. Reflowing slows down the overall page load time, however it speeds up the display of information. We recommend that this setting is set to 5, this way as the page loads, the start will be available more quickly, however the end will take longer to display, but overall the page should display quicker than if the setting is disabled. You can play with this setting to find an optimum for your preference. Please note that this setting relies on content.notifier.ontimer being set to True. Also, this setting does not exist by default, so you may need to create it by right clicking and selecting New -> Integer and setting the name to content.notify.backoffcount and the value to 5.

 

In order to set define the minimum time between reflows we can use the setting content.notify.interval. This is an integer value defining the number of microseconds (1 millionth of a second) between reflows. This setting does not exist by default, and will need to be created. If this is not set then the default is 120,000. It should not be set below 100,000 as this will seriously impact performance. Increasing this value will decrease the total loading time, but increase the perceived load time. As a rule of thumb, take the connection speed in bps (dial up is ~56,000bps, a 1mbps is ~1,000,000bps) and divide this by the processor speed of your computer in GHz. Use the value you get, for example a 2GHz PC with a 2mbps connection would be 1000000. If your value exceeds 1,000,000 then round down to 1,000,000; if the value is below 150,000 then round up to this value. Remember this is a guideline and you can experiment. Note that content.notify.ontimer must be set to True for this to have effect.

 

You can control how long it will be before the page starts to render from initially loading the page. This is controlled with the setting nglayout.initialpaint.delay. This setting is an integer value defining the number of milliseconds (1 thousandth of a second), the default value is 250. Many articles say to set this value to 0, however at this point in time there is no data to display, so this is a pointless exercise. The initial part of the page is made up of headers and does not display any useful information, so setting this value too low is counter productive. For broadband connections, we would recommend setting this not below 100, and for dial up leave at 250. The faster your connection the lower you can take this figure to get the initial part of the page displayed, you can experiment with this figure to optimise for your system.

 

You can determine the amount of time Firefox will be unresponsive while rendering pages using the setting content.max.tokenizing.time. This is an integer value representing the number of microseconds. This preference does not exist by default, and defaults to three times the value for content.notify.interval. We recommend that this ratio is maintained; so if you do have the value set, set it to three times the content.notify.interval value, or delete the value. Lowering this setting will make Firefox more responsive, but at the expense of page load times. The setting content.interupt.parsing needs to be set to True (or not exist, as this is its default value) for this to take effect.

 

Firefox needs to wait for a node before it can render part of a page, if a text heavy page with a long text node is being loaded, this can result in preventing the page from rendering. The setting content.maxtextrun can be used to determine where to split a text node so that the rendering can happen. This setting does not exist by default, but defaults to 8191. This is fine for most setups, however if you have a slow computer on a fast connection it may be beneficial to reduce this figure by as much as 50%. You can experiment with this setting.

 

Caching

 

When a page is loaded, it can be cached so that it does not need to be rerendered to be redisplayed, for instance if you go back to a page using the Back button. You can set the maximum amount of memory used to cache images and other interface elements using the browser.cache.memory.capacity setting. This is an integer setting that defines the size of the cache in kilobytes. This setting is not present by default. A setting of 0 disables caching, and -1 is the default setting where Firefox determines it’s own maximum based on the physical RAM in the system. This table (check down) displays the defaults.

 

You should lower this setting if your computer’s performance is suffering due to low memory, however this will increase load times of previously visited pages. You can also increase this setting to improve performance, however it is not recommended to go beyond 10% of the total physical memory, as this will impact other applications and processes running on the PC. In order for this setting to take effect, bowser.cache.memory.enable must be set to True. If you want to experiment with this setting, putting about:cache?device=memory in the address bar will give the current memory cache usage.

 

owsd.jpg

 

User Interaction

 

If content.interupt.parsing is set to True (default), then the user can interact with a loading page (click links, etc.). If the page is not being interacted with, then Firefox checks for interactions less frequently, however once an interaction has been detected the frequency of checking increases to make the application more responsive to the user, but slows page load time. The time taken from the last interaction to returning to the less responsive mode where the page loads quicker can be changed with the setting content.switch.threshold. This is an integer value that represents the number of microseconds before returning to the less responsive mode. By default this setting does not exist and defaults to 750000. This value is fine for most PCs, however for slower PCs especially on slower connections you may wish to raise this to 1000000 to make the application more responsive during page loads. This will have an adverse affect on page load times however. You may wish to experiment with this setting. Please note content.interrupt.parsing and content.notify.ontimer must be set to True for this preference to take effect (they both are by default).

 

Summary

 

You should now have an idea of what settings can impact the performance of Firefox. We encourage you to experiment with these settings to see what works for your setup best in order to get the most out of Firefox with you setup.

 

Posted

In SIMPLE Words : ALL that Guide Is in 3 Programs =>

 

Firefox + Fasterfox + Firetune !!!

 

If you have those 3, ALL those Steps are in AUTO !!

 

Search In googe for Firetune ( freeware )

Search in google for Fasterfox (Mozilla firefox estention)

 

Have Fun !!

Posted

In SIMPLE Words : ALL that Guide Is in 3 Programs =>

 

Firefox + Fasterfox + Firetune !!!

 

If you have those 3, ALL those Steps are in AUTO !!

 

Search In googe for Firetune ( freeware )

Search in google for Fasterfox (Mozilla firefox estention)

 

Have Fun !!

 

agree, it is just for the lazy :)

  • 1 year later...
Guest
This topic is now closed to further replies.


  • Posts

    • L2jBayev Chronicle 3: Rise of Darkness – AiEngine Edition In short: this is a C3 build with a full-fledged AI engine, live mercenaries, a built-in quiz, a “personal account” in the Community Board, and server logic neatly distributed across thread pools. The project is about a living world without lags : bots farm, communicate, gather parties, teleport along routes, and the server remains cold and stable.   What's inside (the most delicious) 1) Full-fledged AI engine for characters Behavior types: farming ( FarmAI ), combat ( CombatAI ), party logic ( PartyAI ), trading/walking ( TraderAI / WalkerAI ), support roles (healer, etc.). Class profiles: for mages/archers/daggers, etc., “smart” skill rotations, distance control, sleep/save skills, healing, loot pickup, etc. are implemented (see examples of classes like SpellSingerAI , NecromancerAI , etc.). Self-healing and teleports: when dying, the bot goes through a sequence of steps without sleep()- via AITaskSequence + AITeleportToLocTask , searches for the nearest gatekeeper and teleports via TeleportationManager with routes depending on the level. Auto-support: auto-nipples, arrows/bones, smart auto-proceduring of buffs and auto-banks CP/HP/MP with thresholds - all sewn into the auxiliary EtcPlayersAi . Chat context: ChatManagerAi processes mentions, makes responses with delays (anti-flood), supports party chat and “human” reaction. Understanding: ChatManagerAi system  processes the dialogue, bots remember your aggression and insults, they start to respond less often to modern users, stop accepting or inviting to a group (party) and when it goes beyond the peak they will simply merge you, and every time they see you on the PC, there is an opportunity to measure more often, communicate respectfully and beautifully, in general, a “human” reaction. Why a player/admin needs this: bots actually “live”, farm and interact, and don’t just stand on macros. This is a great background for online and PvE action.   2) Mercenaries (Mercenary system) Full-fledged companion character : L2MercenaryInstance with its own MercenaryAI (movement, attack, support, consumables, shots). Behavior modes: DEFENDER / SUPPORT / PASSIVE - switchable to suit your playing style. Progress and trust: the mercenary's trust/exp/level grows , skills are learned according to the MercenarySkillTree (conditions are based on the trust or level of the owner). Templates and equipment: via MercenaryTemplateTable and spawner - model/weapon/type are selected. Social: MercenarySpeechManager - a set of speeches; the mercenary "comes to life" in the chat. Premium Link: Premium account owners give the mercenary additional trust (faster progress). Why: This is not a dummy pet, but a playful companion with modes, training and “character”.   3) Quiz (event viktorina ) Rounds according to schedule: pre-launch with announcements (minutes/seconds before start), registration .reg, auto-opening of the window. Multiple choice questions: question + set of answer buttons; fair processing, timings, question change. Tops and history: results table, statistics, neat UI via HTML assembly. Flexible control: you can start immediately or set a delayed start (notification package 5/2/1 min, etc.). Why: regular activity for players, “social entertainment” module right in the build.   4) Personal account in Community Board KB managers: buff cabinet, teleports, clans/forums/mail/friends, tops (PK/PvP/wealth/players), character repair, viewing skill trees , etc. Premium logic: some services/mail are limited by premium; premium also affects the visual (nickname color) and bonuses (see effect on mercenary). Single sign-on: all in one place, no team chaos. Why: conveniently manage your character and services without going into the console or installing third-party mods.   Why is the system technically valuable? Minimum load and stability Separated thread pools: AI logic, hunting, teleports, chat - on separate onesScheduledExecutorService ( AI_THREAD_POOL , MONSTER_HUNT_POOL , TELEPORT_POOL , CHAT_POOL ). No "freezing": task sequencers (teleport/recovery) work through the scheduler, not Thread.sleep(). Bot limitation: protection against overload via thresholds/counters - “extra” bots do not start. One bot - one sequence: AITaskManager ensures that the character does not have parallel conflicting tasks. Smoothing out peaks: starting tasks with offsets so that there are no simultaneous “ticks” of hundreds of bots. Monitoring/logs: own loggers (separate files for info/errors/processes/chats), CPU load monitoring. Bottom line: the build is designed for “thick online” and mass activities without TPS failures .   Additional Features Auto-alliances for farming: party logic invites suitable players (checking level/equipment/clan flags), there are “human” responses to requests. Sub/class management: out of the box helpers for changing class/subclass, auto-learning of necessary skills and selection of equipment by level. Security/protection: secondary PIN/picture password support (used in KB/voiced commands; optional). Premium accounts: privileges in KB/mail/visual and synergy with mercenary progress. Ready-made services: tops, auctions/mail, teleports from KB, buff rooms, repairs, viewing skill trees, etc.   Who is this build for? Freeshare/project admins who want a living world “from the pack”: bots and mercenaries provide a constant background of activity. Players who value convenience: personal account, premium services, events and a mercenary companion. Developers who want a clean, predictable backend with thread pools and a neat task model without “magic”.   How it differs from standard assemblies Not macros - AI profiles with “brains”: rotations, positioning, healing, decision making. Not a decoration pet - a mercenary with his own modes, progress, skill tree and lines. Not a faceless gamemod - an event quiz with UI, schedule, tops. No chaos in flows - strict pools, planning and task managers designed for online and growth. No separate scripts - a single personal account in KB for most activities.   TL;DR (one paragraph for the project card) AiEngine C3 is a build with live AI, smart bots, mercenaries (modes/progress/skills), built-in quiz, premium logic and a convenient personal account in KB. Under the hood are distributed thread pools and task managers without sleep(), so even with a dense online the server remains stable and responsive.   Additionally add - there is still a lot of interesting things command .assassin or shift+target (order murder), shift+target for admins on AI characters for control, admin panel is completely rewritten, many additional functions, mercenaries change their appearance depending on trust, deepseek and chatGPT system is connected for communication of characters like real players, GPT - for newer java, there is still a very large list of fixes after the last versions, a lot has been fixed, including height coordinates (Z) geo-Squares, pathfinding, visibility through obstacles, fix pet summons, trade packages, shop packages, many effects, quests (including the original ones like nipples, etc.), Ai behavior of NPC and RB monsters, absolutely all epics have been transferred to AiLoader no longer in python scripts. Attention! The server is suitable for both classic mode and PvP format, as well as with various mods. Absolutely everything is configured in the configurations to suit your taste and purposes of use. It is recommended to launch the server through L2ServerControl (simplifies management and control of processes). Download Servers: Chronicle 3 Server Chronicle 4 Test Upgraded Server Full Desc & screens: Post & Screens c3 Post & Desc c4    
    • 🎃 HALLOWEEN EVENT 🎃   ‼️ Information and details: https://forum.l2harbor.com/threads/halloween-event-fall-harvest-30-10-07-11.8265/post-168620
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock