С 4й версии GCC умеет подбирать оптимальные параметры автоматически, для этого нужно всего лишь указать в CFLAGS ключ -march=native. Однако, бывают случаи, когда -march=native использовать нельзя, например, если у вас distcc (proof) Вот здесь начинается особая, уличная магия. Первое, что нужно сделать - узнать свою модель процессора. Сделать это можно при помощи команды:

grep -m1 -A3 "vendor_id" /proc/cpuinfo

Получите примерно такое:

  1. vendor_id       : GenuineIntel
  2. cpu family      : 6
  3. model           : 30
  4. model name      : Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz

Простое решение - позаимствовать из архивов Gentoo Wiki набор протестированных флагов (раз, два, три). Однако такие документации уже довольно стары, а то и вовсе не поддерживаются. Так что вы имеете достаточно большую вероятность просто не найти свой процессор в этих простынях. Поэтому последний и сложный вариант - составить свой собственный, точный набор флагов, используя те же инструменты, что и GCC для -march=native.

  1. # выполнять от root`а
  2. gcc -c -Q -march=native --help=target

Это команда выведет список флагов, который поддерживает ваш процессор. Используйте осторожно, ибо не всякая программа будет компилироваться с ними. Например от mstackrealign у меня намертво отваливалась сборка порта bzip2. Так же будет полезно рассказать GCC сколько памяти у процессора в L-кешах. В этом нам поможет утилита lscpu:

  1. sb0y@fabian / $ lscpu
  2. Architecture:          x86_64
  3. CPU op-mode(s):        32-bit, 64-bit
  4. Byte Order:            Little Endian
  5. CPU(s):                8
  6. On-line CPU(s) list:   0-7
  7. Thread(s) per core:    2
  8. Core(s) per socket:    4
  9. Socket(s):             1
  10. NUMA node(s):          1
  11. Vendor ID:             GenuineIntel
  12. CPU family:            6
  13. Model:                 30
  14. Stepping:              5
  15. CPU MHz:               2660.000
  16. BogoMIPS:              5320.11
  17. Virtualization:        VT-x
  18. L1d cache:             32K
  19. L1i cache:             32K
  20. L2 cache:              256K
  21. L3 cache:              8192K
  22. NUMA node0 CPU(s):     0-7

Теперь можно добавить в CFLAGS: --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192. Вот и всё. После установки новых флагов, лучше выполнить emerge system, чтобы быть уверенным, что ничего не сломалось.



nEcdyGgx

nEcdyGgx 13 Augustа в 18:00 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 2+95-95-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 3+95-95-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 3*2>(0+5+95-95) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 2+998-998-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 3+998-998-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1 OR 3*2>(0+5+998-998)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 2+250-250-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 3+250-250-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 3*2>(0+5+250-250) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 2+44-44-1=0+0+0+1 or 'f62V2ktf'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 3+44-44-1=0+0+0+1 or 'f62V2ktf'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1' OR 3*2>(0+5+44-44) or 'f62V2ktf'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1" OR 2+640-640-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1" OR 3+640-640-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1" OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1" OR 3*2>(0+5+640-640) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

if(now()=sysdate(),sleep(15),0)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1); waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

1 waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

OFVYYpvW'; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-5 OR 627=(SELECT 627 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-5) OR 374=(SELECT 374 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

-1)) OR 228=(SELECT 228 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

TtmyN9sZ' OR 285=(SELECT 285 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

CESJXoKV') OR 841=(SELECT 841 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

TCw1Dnvy')) OR 559=(SELECT 559 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

1'"

nEcdyGgx

nEcdyGgx 13 Augustа в 18:03 #

@@2mkWP

nEcdyGgx

nEcdyGgx 13 Augustа в 18:37 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 2+20-20-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 3+20-20-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 3*2>(0+5+20-20) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 2+938-938-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 3+938-938-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1 OR 3*2>(0+5+938-938)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 2+498-498-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 3+498-498-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 3*2>(0+5+498-498) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 2+762-762-1=0+0+0+1 or 'rgABjprn'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 3+762-762-1=0+0+0+1 or 'rgABjprn'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1' OR 3*2>(0+5+762-762) or 'rgABjprn'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1" OR 2+116-116-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1" OR 3+116-116-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1" OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1" OR 3*2>(0+5+116-116) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

if(now()=sysdate(),sleep(15),0)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1); waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

1 waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

XmfPm0Jz'; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-5 OR 475=(SELECT 475 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-5) OR 989=(SELECT 989 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

-1)) OR 951=(SELECT 951 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

7DHILthW' OR 212=(SELECT 212 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

G5UxNBd9') OR 630=(SELECT 630 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

D8BqHPE5')) OR 420=(SELECT 420 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

1'"

nEcdyGgx

nEcdyGgx 13 Augustа в 18:41 #

@@l7Bw0

nEcdyGgx

nEcdyGgx 13 Augustа в 18:54 #

555


Войдите или зарегистрируйтесь, чтобы написать комментарий.