Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28502 Discussions

ifort oneAPI 2022 versus XE2019 EXE size


I just moved several pure Fortran projects from VS2017/XE2019 to VS2022/oneAPI 2022 by simply pulling their solutions (*.sln) into the new environment and rebuilding.  So no change in code/content or ifort compiler/linker options.  And the Fortran is legacy and mundane (mostly 77).  Configuration options are typical/defaults, e.g. for Release build: /O2 /libs:static (All code is statically linked.)

And after this migration I noticed that the EXE sizes increase with oneAPI 5 - 20%.  e.g. In one of the larger cases from 1.956kB to 2.359 kB.  I popped open the EXEs with WinZip and this is the contents ... if it gives any more insight?


Perhaps not surprising but I wondered if you can offer some explanation ... and confirm whether this is your experience too? (when moving from Intel Parallel Studio XE to oneAPI).  Thank you.

0 Kudos
3 Replies
Honored Contributor III

Did you notice that x64 is the default build platform now? That .data seems to have more than doubled is curious, and the other data sections also got bigger. The code size didn't increase much.

More enlightening would be the link maps for an EXE compiled with both versions.

0 Kudos

Thanks for advice Steve.

Unfortunately, I cannot rebuild the XE2019 EXE as switching IDEs happened when moving machines end of 2022 and I no longer have the VS2017/XE2019 installation and license key.  (Note that I had/have Windows 10 on both old and new machine.)  This incidentally is why I did not make and attach a nice little "Hello World" example. 

Hence, I cannot create a set of map files for comparison.  I can create one for the oneAPI build but do not feel sure I can share this externally - sorry.  It looks interesting but does not mean much to me - is there an Intel guide detailing the map sections/entries?

I do have both EXEs though - pulled old one out of version control.  And while searching for info about map files, noticed that there is a tool called dumpbin which appears to show if x64 and other stuff.  Therefore, I have used 'dumpbin.exe /headers <file>' on both EXEs to produce some more info (attached).  I think it confirms both x64 and I have built x64 for some years now except in special circumstances.  I donno whether the other info gives more clues?

All I can say is that I have the project and old EXE (as built with XE2019) in software version control.  I pulled the project into oneAPI (no changes) and rebuilt x64 Release.  Jon 



0 Kudos
Honored Contributor III

The oneAPI has an extra section named _RDATA size 0x1400 (~5KB), and this:

  Debug Directories

        Time Type        Size      RVA  Pointer
    -------- ------- -------- -------- --------
    63FE2F9B coffgrp      318 00207FD8   206FD8

Now, since the oneAPI has the above information (and the ifort does not), this may imply that you compiled with different options.


Jim Dempsey

0 Kudos