Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Fast Forms - Tricks of the Trade PLEASE

Fast Forms - Tricks of the Trade PLEASE

Scheduled Pinned Locked Moved C#
graphicsperformancecsharpc++
3 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    redfish34
    wrote on last edited by
    #1

    I am desparately trying to get my apps forms to load acceptably fast before release to users. I thought C# was suppose to be comparable to C++ in speed? It seems more like VB6 is a better comparison! I wish i knew the real deal before starting this project! I was lulled into a false sense of security when i kept reading about miracles on the internet about dramatic increases in performance with little tweaks. I thought a solution would come along sooner or later. I am developing in NET 1.1. My computer is 1GHz Sony Laptop Windows 2K. Description of my forms: Combination of custom controls, forms, and user controls. By using panels and user controls as subforms, forms are up to 3 levels deep. Form have about 10-30 controls each on them. Controls used are stock labels, buttons, checkboxes, radio buttons, textboxes. Some forms have customized listviews and combos inherited from stock controls. All forms have button icons. What i have done: I have used the double buffering control style with AllPaintingInWmPaint and UserPaint in the forms, user controls and custom controls where i could. Code is in the constructor. I am using SuspendLayout, ResumeLayout to wrap control setup code that is outside the InitializeComponent method. It is called either in the constructor or Form Load. I tried precompiling assemblies. No performance gain there. Double buffering slowed form load down but improved the sluggish drawing. Sluggish drawing persists. To describe, drawing of forms seems to be done in pieces, not all at once. Overall, the perception of loading has improved a notch, BUT NO MORE THAN A NOTCH! :( I will note that once the form loads the first time, future access during program excution is fast. It seems form graphics are cached by the CLR. But that first time loading! Ouch! What can i do?

    R L 2 Replies Last reply
    0
    • R redfish34

      I am desparately trying to get my apps forms to load acceptably fast before release to users. I thought C# was suppose to be comparable to C++ in speed? It seems more like VB6 is a better comparison! I wish i knew the real deal before starting this project! I was lulled into a false sense of security when i kept reading about miracles on the internet about dramatic increases in performance with little tweaks. I thought a solution would come along sooner or later. I am developing in NET 1.1. My computer is 1GHz Sony Laptop Windows 2K. Description of my forms: Combination of custom controls, forms, and user controls. By using panels and user controls as subforms, forms are up to 3 levels deep. Form have about 10-30 controls each on them. Controls used are stock labels, buttons, checkboxes, radio buttons, textboxes. Some forms have customized listviews and combos inherited from stock controls. All forms have button icons. What i have done: I have used the double buffering control style with AllPaintingInWmPaint and UserPaint in the forms, user controls and custom controls where i could. Code is in the constructor. I am using SuspendLayout, ResumeLayout to wrap control setup code that is outside the InitializeComponent method. It is called either in the constructor or Form Load. I tried precompiling assemblies. No performance gain there. Double buffering slowed form load down but improved the sluggish drawing. Sluggish drawing persists. To describe, drawing of forms seems to be done in pieces, not all at once. Overall, the perception of loading has improved a notch, BUT NO MORE THAN A NOTCH! :( I will note that once the form loads the first time, future access during program excution is fast. It seems form graphics are cached by the CLR. But that first time loading! Ouch! What can i do?

      R Offline
      R Offline
      Robert Rohde
      wrote on last edited by
      #2

      Startup time is always expensive in a managed environment. At many points .Net performance is comparable to C++ performance but startup time definitely isn't. First of all you could use NProf[^] to profile you startup phase. Second have a look at nGen. It generates native images of your assemblies and stores them. Thus on startup the CLR doesn't have to compile everything. Third... well depends on your form. Having too many controls (also nested) might naturally slow down performance. I can't give you any good advice on this because therefore I would need to know some details.

      1 Reply Last reply
      0
      • R redfish34

        I am desparately trying to get my apps forms to load acceptably fast before release to users. I thought C# was suppose to be comparable to C++ in speed? It seems more like VB6 is a better comparison! I wish i knew the real deal before starting this project! I was lulled into a false sense of security when i kept reading about miracles on the internet about dramatic increases in performance with little tweaks. I thought a solution would come along sooner or later. I am developing in NET 1.1. My computer is 1GHz Sony Laptop Windows 2K. Description of my forms: Combination of custom controls, forms, and user controls. By using panels and user controls as subforms, forms are up to 3 levels deep. Form have about 10-30 controls each on them. Controls used are stock labels, buttons, checkboxes, radio buttons, textboxes. Some forms have customized listviews and combos inherited from stock controls. All forms have button icons. What i have done: I have used the double buffering control style with AllPaintingInWmPaint and UserPaint in the forms, user controls and custom controls where i could. Code is in the constructor. I am using SuspendLayout, ResumeLayout to wrap control setup code that is outside the InitializeComponent method. It is called either in the constructor or Form Load. I tried precompiling assemblies. No performance gain there. Double buffering slowed form load down but improved the sluggish drawing. Sluggish drawing persists. To describe, drawing of forms seems to be done in pieces, not all at once. Overall, the perception of loading has improved a notch, BUT NO MORE THAN A NOTCH! :( I will note that once the form loads the first time, future access during program excution is fast. It seems form graphics are cached by the CLR. But that first time loading! Ouch! What can i do?

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        What's the file-size of the graphics? Have you tried NGEN.EXE[^]?

        I are Troll :)

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups