From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Epiphanov Sergei To: ALT Linux Sisyphus discussion list Date: Thu, 1 Mar 2007 12:59:13 +0300 User-Agent: KMail/1.9.5 MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: 8bit Content-Disposition: inline Message-Id: <200703011259.13606.serpiph@nikiet.ru> X-SpamTest-Version: SMTP-Filter Version 2.0.0 [0124], KAS/Release SMTP-Filter Version 2.0.0 [0124], KAS/Release X-Spamtest-Info: Pass through X-Anti-Virus: Kaspersky Anti-Virus for MailServers 5.5.10/RELEASE, bases: 01032007 #259603, status: clean Subject: [sisyphus] =?windows-1251?b?0eru8O7x8vwg7/Du4/Dg7Oz7Li4u?= X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Mar 2007 10:20:08 -0000 Archived-At: List-Archive: List-Post: Не понимаю, почему программа вида: =================== int main(void) { float N[30*60*60]; int i,j,k,shift; for (i=0; i<30;i++) for(j=0;j<60;j++) for(k=0;k<60;k++){ shift=i*60*60+j*60+k; N[shift]=<расчёт>; } } =================== работает на порядки быстрее программы =================== int main(void) { float N[30*60*60]; int i,j,k,shift; shift=0; for (i=0; i<30;i++) for(j=0;j<60;j++) for(k=0;k<60;k++){ shift++; N[shift]=<расчёт>; } } =================== Хотя, теоретически, должно быть наоборот. Расчёт в обоих случаях один и тот же. gcc-4.1.1.alt11. Сборка программы с параметром -O2 (-Os то же самое). Может кто подсказать? -- С уважением, Епифанов Сергей