Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8438247
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T07:39:31+00:00 2026-06-10T07:39:31+00:00

I had an issue that a Win32 application has huge performance difference between debug

  • 0

I had an issue that a Win32 application has huge performance difference between debug and release build. It takes 20 sec for release, while 6 min for debug build to initialize the application. This is painful since when debugging, it always takes 6 min to proceed the initialization before starting doing anything. So I am looking for a way to tune the performance in debug build.

After running profiler, I found below code is the hot-spot.

class CellList {
    std::vector<CellPtr>* _cells;
    iterator begin() { return (*_cells).begin(); }
    iterator end()   { return (*_cells).end(); }
    reverse_iterator rbegin() { return (*_cells).rbegin(); }
    reverse_iterator rend()   { return (*_cells).rend(); }
    ...
}

CellList _cellList = ...;

for (CellList::iterator itr = _cellList.begin(), end = _cellList.end(); itr < end; ++itr) {
  Cell* cell = *itr;
  if (cell->getFoo()) cell->setBar(true);
  else cell->setBar(false);
}

for (CellList::iterator itr = _cellList.rbegin(), end = _cellList.rend(); itr < end; ++itr) {
  Cell* cell = *itr;
  if (cell->getFoo2()) cell->setBar2(true);
  else cell->setBar2(false);
}

And these are the hot-spot in the time-base profile result.

std::operator< <std::_Vector_iterator<Cell *,std::allocator<Cell *> >,std::_Vector_iterator<Cell *,std::allocator<Cell *> > >
std::_Vector_const_iterator<Cell *,std::allocator<Cell *> >::operator<
std::reverse_iterator<std::_Vector_iterator<Cell *,std::allocator<Cell *> > >::operator*
std::reverse_iterator<std::_Vector_const_iterator<Cell *,std::allocator<Cell *> > >::reverse_iterator<std::_Vector_const_iterator<Cell *,std::allocator<Cell *> > ><std::_Vector_iterator<Cell *,std::allocator<Cell *> > >

I guess it’s the iterator operation not being inlined and causes this huge difference. Is there any way to improve this? I can debug in release mode as long as it’s still possible to step line by line in the source code and check all the variable values.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T07:39:32+00:00Added an answer on June 10, 2026 at 7:39 am

    The difference is normal. What’d I’d do is place

    #pragma optimize("",off)
    
    #pragma optimize("",on)
    

    around the methods you want to check, and keep the rest of the build in release mode.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am relatively new to MYSQL and have had an issue that has been
I'm trying to use pyPortMidi for an application that I build for OSX, win32,
I've had an issue that I thought was tinyMCE, then my db, now I
I previously had a post on this issue that was resolved. However since rebuilding
I've got a really odd issue that I've not had any success googling for.
I had an issue with my game that allowed people to easily fake their
So my issue is, which I've had before with Jspinners. Is that I surround
Has anyone else had this issue and found a working solution? I've enabled the
I know, that the issue had been widely discussed before, but after 5 hours
I've had an issue that's been bugging me for a while now. I don't

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.