Tips for Performance Optimization
Product line
Standard
|Expert
Operating mode
CLOUD ABO
|ON-PREMISES
Modules
Services & CRM
Budget & Phases
Purchases
Resource Planning
Business Intelligence
There are several components that can affect the overall performance of the system. If certain parts stand out negatively or the overall system is performing poorly, it is important to find out exactly what is slow and what the potential impacts are.
Depending on the type of operation: on-premises (operated by the customer) or cloud subscription (operated by Vertec), there are different ways to influence performance.
Below is a graphical representation of the two variants. The colours show who can influence which part of the performance.
Only Vertec has an influence on the blue areas: Only Vertec can influence the business logic, i.e. how something is calculated or how the data is handled. In the cloud subscription scenario, Vertec is responsible for the operation, but the upper levels remain the same. This means that even with good server and network performance, Vertec can do things that will not perform now or in five years’ time. |
|
Only the customer or – if parts have been outsourced to an external service provider – this third party has any influence on the orange areas. The orange components are beyond the reach of Vertec or Vertec advisor. | |
In the green areas, there is a mixed responsibility: Vertec can influence customizing opportunities in the sense that we provide high-performance customizing opportunities or make optimizations if we see that certain customizing opportunities are used in such a way that they are not high-performance. Customers have an influence on the requirements in this area. In the case of features, performance should always be included as an additional requirement and the feature should be checked accordingly. It can also be worthwhile to examine optimization options for existing installations. Here, the Vertec advisor is also responsible for ensuring that the implementation is as efficient as possible. This includes rejecting certain requirements if it is obvious that they will not perform well now or in the future. |
This article discusses performance issues related to customizing. For information on network performance, see Performance on the Web.
Often, it’s just a list or folder display, or a particular behavior causes performance degradation. First, you need to determine if it’s really a problem with Vertec. For example, it could be a network problem.
Try to find out where the performance problem lies in Vertec by using our Interactive Performance Analysis Tool or the list below.
One possible cause could be an IX folder set up at the top level of Vertec. The top level, called root, is the one you see first when Vertec starts up (e.g. root data, public folders).
The IX folder calculates its contents as soon as the layer in which it is located is shown. If the folder is in the root, this is the case at startup.
If you move the IX folder to a lower level, Vertec will restart at normal speed. You can move a folder using the script: Move folder.
At startup, the folder structure of the logged-in user is shown at the top level. If you use wrapper link types on project users who have the Always show containers option disabled, the tree will be checked for each of these containers to see if it needs to be shown or not. For these wrapper link types, activate Always show containers option. Thus, although the folder in the tree will be shown, the objects will not be loaded until you click on the corresponding folder.
For installations with very many projects (from 2000-3000 active projects), it is advantageous not to load the projects at the start of the program. To do this, observe the following steps:
In Vertec under Einstellungen
> System Info
see [LoadedObjects] for a list of all the objects that have been loaded. So after booting, check what Vertec has loaded. This might give you an indication of why booting is slow.
If Vertec.Desktop.exe is located on and started from the file server, file sharing issues may affect startup performance.
The Vertec desktop app should never be launched over the network. Use the Vertec cloud app or the Vertec web app instead.
If it is unavoidable to use the Vertec desktop app on a client, perform an appropriate Client Installation .
In one case, it happened that Vertec started very slowly on some clients. After the connection was up, Vertec ran normally fast.
The reason was that the server was set to IPv6 and expected the connection attempts to do so. However, all problematic clients were set to IPv4. This configuration appears to be possible, but it causes delays in connection. After the server was set to IPv4, the delays did not occur.
Starting the desktop app takes 20 to 30 seconds on a computer without an internet connection. As soon as there is an internet connection, the application starts at the usual speed.
This is related to the .NET Certificate Revocation Check (CRL). If Internet Options > Advanced > Security > Check for publisher’s certificate revocation is disabled, the application starts normally.
Workaround: Provide Internet connection or disable revocation-list checking (which is not needed if there is no Internet connection).
The folder you click is part of a folder structure. What you want to show are the subfolders.
One possible cause could be an IX folder set up as one of the subfolders. The IX folder calculates its contents as soon as the layer it is located in is shown. In this case, the display of the parent folder takes a long time.
Move the IX folder to a lower level, for example, by simply inserting another folder. The IX folder is then calculated only if you really want to see it. You can move a folder using the script: Move folder.
The folder is a single folder. You want to show the entries. It is a:
If there are thousands of entries to load, it may take a little longer. In that case, you just have to wait. In any other case, it will be more of a problem with the displayed list. See “List slowly showing” below.
If there are thousands of entries to load, it may take a little longer. In that case, you just have to wait. In any other case, it will be more of a problem with the displayed list. See below List is shown slowly .
A query folder is based on several other folders. Check the underlying folders. Does it have a “long runner” underneath that you can optimize? Otherwise, it could also be due to the list settings. See below List will show slowly.
It is important that columns that are no longer needed are not simply set to 0 width, but are deleted. Otherwise, they will still be calculated and will take time. Check for such columns in the list and delete them if you no longer need them.
offeneleistungen->select(phase.boldid=8070)...
loads all open services for each employee in the list and filters them according to a specific phase. For large installations this can bring Vertec to a standstill. It is better to load the phase first and then filter only the open services on this phase according to the employee:
Projektphase.allinstances->select(boldid=8070).offeneleistungen->select(bearbeiter=self)...
The Test Folder Performance Python script allows you to determine the performance of a folder (specified by the ID). As a result, a list of the load times of each column is returned. For more information about this script, see Script: test folder performance Performance.
Constraints can lead to significant speed problems. An indication of such problems is when certain lists take a long time to build: e.g. if project lists are long, but performance lists are iO, you should check the constraints on projects and adjust them if necessary.
It is problematic if the list is shown in the background while the service data is changed in the foreground. Service sums are always recalculated as soon as any service in the system is changed. The recalculation occurs when the service sum numbers are also visible. In this case, the whole list is recalculated continuously, which can lead to a massive loss of performance.
Expressions on permissions can lead to performance degradation. The problem is that every time a user accesses a member, the permission has to be checked – a “caching” is not possible, because the result of the expression can change between 2 calls. In particular, read rights that are assigned to entire classes (i.e. not to individual fields) have to be checked again for each individual field.
Check if you have permissions that work with expressions. In this case, you should limit the permissions accordingly, for example, write instead of read (which often exists anyway, for example for address entries) or assign only to individual fields.
In principle, read rights at class level not without specifying the corresponding fields, especially for classes that are either displayed in lists (such as service, address entry) or used in totals (invoice).
Is entering services fast and then slow? Pay attention to what you have shown in the background. It could be a list of service sums. A detailed explanation of this constellation is described in the previous section under “Service sums in lists”.
In the system settings, section Project/Case, there is the setting Show billed services and expenses. If this option is set to Yes, the billed services, expenses and outlays from the service entry are shown in separate subfolders on the project.
This can reduce the speed of displaying projects and project phases when there are many billed items. To optimize performance, turn this option off by default. If you want to access billed services, expenses, and outlays, you can temporarily turn this option on or access the corresponding invoice. The billed items are always visible on the invoice.
In the system settings, section Project/Case, there is the setting Show totals. Here you can define whether the budget values on projects and project phases should show the comparison with the actual values by default or not. In order to be able to calculate these figures, Vertec must load services, expenses and outlays of the corresponding phase or project. Therefore, such a setting may be accompanied by a slowdown.
To optimize performance, turn this option off by default. This can be overridden on a project-by-project and phase-by-project basis by ticking Show values? so that you can only show the numbers when you really need them.
When validating documents that are assigned to an activity, it is also checked whether the linked file exists in the filesystem. This can lead to performance problems with large activity lists.
In the system settings under General there is the setting Check existence of document files. In this system setting you can set whether the check should take place. By default it is set to Ja
. If it is set to Nein
, the check will no longer take place and activities with documents without an associated file in the filesystem are still valid.
If creating objects is unbearably slow, but everything else is running smoothly, this may be caused by the Notif port blocked by the server firewall.
If you install Vertec on a server that also has a firewall for the internal network (e.g. in the case of XP, Server 2003 and Server 2008), the Notif port and possibly the XML port must be explicitly enabled for this to work. To do this, you should enable the port and also Vertec.CloudServer.exe.
The information about what is running on which ports can be found in the Vertec.ini configuration file, which is located in the Vertec installation directory.
Is it possible that the entry is connected to another via a CustomLink or a GenericLink? It is the case that when you delete all 'sister’ objects are also loaded. So if you have a CustomLink / GenericLink between addresses and user, and there are 5000 addresses attached to one user, then when you delete one such user all 4999 others are loaded as well.
First, remove the link connection to the other object manually, and then delete the entry.
Does Vertec seem to be slow in general, but you can’t pinpoint exactly where?
Can a network problem be ruled out? See the article Performance in the network .
Does Vertec sometimes run very slowly, and I keep getting error messages about Notif not running. In the system info, there is an error “Socket Error #11001” with the Notif.
The reason for this is an incorrect hostname in the INI file. The computer on which the Notif is running has a different name. If you correct the name, the Notif is running correctly and Vertec is also running normally fast again.
In connection with Windows 8.1 on laptops, the following problem may occur: The Windows 8.1 Power Saving Mode automatically sets the Airplane Power Saving Mode when the radio connections are turned off. This may be the case, for example, when the laptop is on the LAN and on power. Nevertheless, this Power Saving Mode is automatically set and severely affects the performance of Vertec (and, of course, any other application that would consume a lot of resources locally).
If you delete the energy-saving plan, it just comes back the next time you turn off the radio. So every time you turn off the radio, you have to turn off the aircraft energy-saving mode again.
Affected by this problem are the Windows clients desktop app and cloud app, which seem to react so strongly to processor throttling due to the use of WPF and related graphics performance. The web app, which also uses WPF on the server, on the other hand, is not visual, and the exact same business logic, runs smoothly.
One possibility is that the slowdown has to do with corrupt indices. This greatly slows down computationally intensive processes in particular.
MS SQL
You can re-create the database indexes with a new convert. To do this, simply run an Sql convert without changing the version.
Firebird
A Backup / restore the database deletes the indexes and re-creates them. Make sure that all users close Vertec before performing this operation.
If that doesn’t work, increasing the page size of the database can help. For more information, see the article on Firebird pages and buffersize .
In Vertec under Einstellungen
> System Info
see [LoadedObjects] for a list of all objects that have been loaded. For slow operations, it may be worthwhile to compare the loaded objects before and after the operation to get an indication of where the performance problem might be coming from. See Performance analysis with loaded objects
for details.
There is the server hardware, the database (Firebird or MS SQL) and the network. Based on these are the Vertec server services and the various clients. The so-called fat client, the desktop app, which directly contacts the database server and processes the entire business logic locally, as well as the cloud clients, in which the application logic runs in the cloud server and the actual clients as thin clients only apply the representation. These two fundamentally different types of client naturally each have their own performance behavior, e.g. with regard to operation over a narrow VPN connection (Vertec in WAN systems).
The structure of the software is the same for both types of clients: there is the business logic, the object space (in which the Vertec objects live) and the customizing in the Vertec itself (lists, queries, evaluations, etc.). In the case of the cloud clients, another network is involved for the display on the end devices.
Note the CPU usage of Vertec.Desktop.exe while you are working with Vertec on the client (in Task Manager). If the CPU usage of Vertec.Desktop.exe is low while you are waiting in Vertec, it can be assumed that there is a problem with the network, server, or database. See the article Performance on the Net.
If the CPU usage of Vertec.Desktop.exe is high while you have to wait in Vertec, it can be assumed that it is really Vertec that is slow (assuming your system meets the minimum requirements).
The performance of cloud clients (cloud app and web app) depends on network latency, not bandwidth.
Since Cloud Clients run sessions on the server, make sure that the server has the appropriate service (at least 100-200 MB RAM per session).
Verify that the cloud server service is started and that Notif is not reporting any errors.