See Also:
TdxBarManager.LoadFromIniFile slow after upgrade
Another manifestation is really slow repainting of nav bars in newer build which is really annoying and makes UI quite sluggish even on my PC not to say my users that have rather weak and outdated PC
Performance regression when creating certain toolbar layouts
Answers approved by DevExpress Support
We have fixed the issue described in this ticket and will include the fix in our next maintenance update. To apply this solution before the official update, request a hotfix by clicking the corresponding link for product versions you require.
Note: Hotfixes may be unavailable for beta versions and updates that are about to be released.
- v13.1.2Download Official Update
- v12.2.5Download Official Update
oh, and please fix Q481850 before releasing 2.5 as it is quite annoying to replace resource files after every reinstallation
Our developers are working on the The "[Linker Error] Invalid resource file" errors occur when building a project issue. However, I cannot guarantee that it will be fixed in VCL 12.2.5.
it's just a question of setting neutral language (instead of us/russian) there in rc, not much to fix really
I'm not sure how Q482068 related to this report
Would you please provide us with a sample project demonstrating the issue or at least a video so I can try to replicate your scenario and test the performance?
the "funny" thing is that now it takes almost 4 (!) seconds between execution of the last line of that form constructor and first line of OnShow event handler
I apologizes. Wrong ticket. I mean Q482201. Any additional information (including a demo or video) would be much appreciated.
hope you'll be able to reproduce it with that form attached in Q482201
Hello,
Thank you for providing me with your .dfm files. I am afraid I cannot find our TdxNavBar control there. Perhaps, I misunderstood you and this issue is not related to NavBar, but to another product. Would you please clarify the problem in greater detail?
I'm sorry for misinforming you. I'm not using nav bars, there are ordinary bars on the form
looks like it has something to do with switching the form style from normal to mdichild, see attached sample. it takes ~2.5 seconds on my pc. since I removed older build I don't know how fast it would be on 11.2.4
but as I already mentioned in real-world app it is even worse and takes up to 4 seconds. given that there are many other slowdowns there during form initialization (including loading layout/bars configuration from external storage) it takes almost 10 (!) seconds between clicking the menu item and the moment that form is visible to end user and ready for operation. hope you understand how annoying it is for me and especially for the users of my app and how frustrated I am as whenever I try to upgrade devex lib I hit some performance issue
btw you can see aforementioned slowdown there when you switch active tab from "условие отбора" to "список дебиторов" one can see how those vertically arranged bars on the right side of the form get repainted while in 11.2.4 it was almost instant
Hello,
I appreciate your providing a sample project. I have successfully compiled it, but on my side the loading time is very little (see the attached video). Would you please clarify whether or not my steps to reproduce the problem are correct?
I guess you have VM with 11.2.4 installed? will you please provide 2 exe built with older and the latest release. attached is the exe built with the latest version on my pc. message box typically shows 2500 to 3000 when I click that button
btw I believe you should replace that "ExpressNavBar" tag with something more appropriate
looks like it takes longer the more open mdi-child forms there, see attached screenshot. I modified the sample to put the time in the form's caption for the sake of illustrativeness
and here's the callstack from that delay:
exception message : Приложение не отвечает
main thread ($7e74):
779eec5f +063 ntdll.dll bsearch
754b6ac0 +161 USER32.dll GetClassInfoExA
754ad25c +02e USER32.dll CreateWindowExA
0071e7cb +03f Project5.exe windows 31806 +2 CreateWindowEx
00705724 +030 Project5.exe Controls 6778 +1 TWinControl.CreateWindowHandle
00705645 +121 Project5.exe Controls 6762 +21 TWinControl.CreateWnd
00705a32 +016 Project5.exe Controls 6883 +3 TWinControl.CreateHandle
00709358 +01c Project5.exe Controls 8894 +4 TWinControl.HandleNeeded
00709365 +005 Project5.exe Controls 8900 +1 TWinControl.GetHandle
00624476 +06e Project5.exe dxBar _21169
00624690 +0d0 Project5.exe dxBar TdxBarShadow.CreateParts
0062479c +00c Project5.exe dxBar TdxBarShadow.Refresh
00624860 +088 Project5.exe dxBar TdxBarShadow.SetOwnerBounds
0061a525 +059 Project5.exe dxBar TCustomdxBarControl.ResizeShadow
00617e5d +015 Project5.exe dxBar TCustomdxBarControl.WindowPosChanged
005f462e +00e Project5.exe dxBar TdxBarControl.WindowPosChanged
006177e4 +020 Project5.exe dxBar TCustomdxBarControl.WMWindowPosChanged
00702883 +2bb Project5.exe Controls 5146 +83 TControl.WndProc
007068cf +4fb Project5.exe Controls 7304 +111 TWinControl.WndProc
0061811d +201 Project5.exe dxBar TCustomdxBarControl.WndProc
005f62eb +147 Project5.exe dxBar TdxBarControl.WndProc
00705ff8 +02c Project5.exe Controls 7073 +3 TWinControl.MainWndProc
0071e294 +014 Project5.exe Classes 11583 +8 _17350
779d0107 +02b ntdll.dll KiUserCallbackDispatcher
754a8e5c +00e USER32.dll SetWindowPos
005f2cc3 +057 Project5.exe dxBar TdxBarControl.SetNewBounds
00615384 +0c4 Project5.exe dxBar _20406
0061547c +0d8 Project5.exe dxBar TdxDockControl.CalcRowToolbarPositions
006149f0 +054 Project5.exe dxBar TdxDockControl.CalcLayout
00615e6f +09b Project5.exe dxBar TdxDockControl.PaintBarControls
006160de +02a Project5.exe dxBar TdxDockControl.UpdateDock
005e5f2e +1d6 Project5.exe dxBar TdxBarManager.Loaded
00712564 +024 Project5.exe Classes 2681 +3 NotifyGlobalLoading
007126e5 +071 Project5.exe Classes 2719 +7 InitInheritedComponent
006d7101 +0a1 Project5.exe forms 2851 +8 TCustomForm.Create
00405e5f +033 Project5.exe forms.hpp 1022 +0 Forms.TForm.Create
00405dfb +033 Project5.exe unit4.cpp 77 +1 TForm4.Create
hope your developers will be able to localize the problem using it
Hello,
Here are two projects compiled on my side with VCL 12.2.4 and v2011 vol 2.4 as per your request. They have almost equal performance on my PC.
As for the fact that each next MDI child form is created a slightly longer than the previous one, as far as I know this behavior is caused by naming mechanism.
thanks for the sample that clearly demonstrates the problem here. older build shows only 200-300 but newer one astonishing 4000-5000. please tell that to your developers and send them aforementioned callstack for further investigation asap
Hello,
OK. I have forwarded this ticket to our developers for research. However, I should mention that I was not able to reproduce the loading time of 4000 milliseconds on my side with the VCL_12_2_4.exe file. Perhaps, our developers will be able to find a possible cause of the problem in the CallStack.
thank you. as a possible option to spot the culprit would be to produce exe for every devex lib starting from 11.2.4 so I could definitely say when that slowdown showed up. then you would diff dxBar.pas between two adjacent versions. if you willing to build so many different versions I'll be glad to test them on my side
Hello Vladimir,
Would you please test the attached executable on your side and inform me about your results? Does it have better performance than VCL 12.2.4?
yes, it shows 250-300 ms
let me also add that now it demonstrates some weird animation effect when I click "More buttons" on the bar
Thank you for the good news (about improved performance). This means that we have found a solution (at least I hope so).
As for your last comment, please describe the problem in greater detail. A video demonstrating the mentioned animation effect would be very much appreciated.
you told you weren't able to reproduce that slowdown on your side. any explanation on that?
see attached video. you may want to use "frame step" to see aforementioned effect
We still cannot reproduce a 4-second delay on our machines. However, we have fixed the behavior when each next MDI child form is created a slightly longer than the previous one. The sample project you provided has helped us find the erroneous code, and this code seems to be the cause of the slowdown on your PC.
The video you provided in your latest comment helped us as well. I saw the strange shadow behavior you mentioned. Would you please test another executable file I have attached to this comment? It seems that both issues are fixed there.
I am looking forward to your reply.
> We still cannot reproduce a 4-second delay on our machines
would you mind to provide your specs?
> we have fixed the behavior when each next MDI child form is created a slightly longer than the previous one
is this really has something to do with the "naming mechanism" you mentioned before?
> I saw the strange shadow behavior you mentioned
shadow??
> It seems that both issues are fixed there
no, now it demonstrates another "blinking" effect when clicking "more buttons"
Hello,
> would you mind to provide your specs?
< Attached is a screenshot demonstrating the performance on my machine. Would you please provide us with a similar one from your PC?
> is this really has something to do with the "naming mechanism" you mentioned before?
< No, this behavior was related to drawing shadows.
> shadow??
< Yes. The drop-down menu shadow appears at the top-left corner of the video frame.
> no, now it demonstrates another "blinking" effect when clicking "more buttons"
< What do you mean by saying "blinking"? Would you please describe this effect in greater detail?
I'm on Core i5 650 @3.2 GHz with 4GB RAM under win 7 x64
Processor: 7.0
Memory (RAM): 7.1
Graphics: 6.5
Gaming graphics: 6.5
Primary hard disk: 5.9
> The drop-down menu shadow appears at the top-left corner of the video frame
for me it looked more like that menu was "flying" from the top-left corner to its destination position :)
> Would you please describe this effect in greater detail?
it's like drop-down menu frame "flashes" few times before it is actually displayed. I think I'll try to produce another video if you cannot see it on your side
Thank you for providing your system specifications. Yes, the video would be appreciated.
well I'm not sure if my specs really helped. I asked to provide yours because I thought that you couldn't reproduce the problem because you're using very fast pc but that apparently isn't the case and my developing pc is even more powerful than yours. but let me repeat that my corporate clients using really outdated and slow pc on older pentiums often having less than 1GB of RAM etc. and some parts of devex components are very slow there
ok, check this video to see how that shadow around drop-down frame appears and disappears twice (?) before the menu items actually become visible
I see the "blinking" effect in your video. However, we have reproduced the same twice appearing shadow without applying code changes we performed in the context of this ticket. Thus, we consider the performance regression discussed in this ticket fixed.
I have created a separate ticket regarding the twice appearing shadow (Shadows for drop-down windows are painted twice). Please refer to this thread for further correspondence on this issue.
may I ask you to publish the fix then?
We will publish a fix soon.