march和mtune的区别

2023-10-12 15:10
文章标签 区别 march mtune

本文主要是介绍march和mtune的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:  http://blog.openrays.org/blog-htm-do-showone-tid-364.html

给定gcc优化选项时经常要指定march和mtune。我以前都将它们赋为一样的值,例如pentium4.

今天仔细研究了一下它们的区别,原来还是有一些道道的。

首先是man gcc:

-mtune=name
      This option is very similar to the -mcpu= option, except that
      instead of specifying the actual target processor type, and hence
      restricting which instructions can be used, it specifies that GCC
      should tune the performance of the code as if the target were of
      the type specified in this option, but still choosing the instruc-
      tions that it will generate based on the cpu specified by a -mcpu=
      option.

上面是gcc3.2的manpage,现在mcpu已经不用了,一般都用march。望文生义,march指定的是当前cpu的架构,而mtune是真正作用于某一型号cpu的选项。

根据链接:
http://gentoo-wiki.com/Safe_Cflags
的解释,march是“紧约束”,mtune是“松约束”。mtune可以提供后向兼容性,也就是mtune=pentium-mmx编译出来的程序,在pentium4处理器上也是可以运行的。

因此,像-march=i686 -mtune=pentium4这样的优化选项编译出来的程序,是为奔腾4处理器优化过的,但是在任何i686上都可以运行。

我猜,如果指定了-march=pentium3,那么在奔腾4处理器上程序是不能运行的。

上面是自己根据别人的文档整理出来的一些说法,具体是不是这么回事没有试验过。若有错误的地方,还请大虾指正:-)


转自:http://www.raspberrypi.org/phpBB3/viewtopic.php?f=54&t=707&start=50
There are stage3-tarballs but I didn't yet create a stage4-image. I could create you a SD that contains just bootloader-stuff (kernel, GPU firmware on the FAT-partition) and the Gentoo-stage3 files on a 4GB-base if you want.
Posts: 55
Joined: Tue Jan 17, 2012 3:48 pm
by  drivintin » Sat May 19, 2012 10:13 pm
All I can say is, THANK YOU!

I just got my Pi, and just now really getting started with building Gentoo for it. Having an image has saved me tons of time.

Did any of you have any luck with cross-compiling? I am trying to see how an entire laymen overlay will work, so really need a lot more umph then just running QEMU. I just started the armv6zk-hardfloat-linux-gnueabi crossdev build. Really hoping it works out.

Also the SD card I have is total pain. Have any of you tried usb flash storage? It says you can boot from usb drives, but seems like most are putting the kernel on the SD then loading root from USB.

I am sure I will have a ton more questions. Thank you guys for working on this so that I can have a jumpstart!
Posts: 7
Joined: Sat May 19, 2012 10:08 pm
by  Morgaine » Sun May 20, 2012 1:46 am
I'm a long-term user of Gentoo on all my Intel machines, so I'll be keeping an eye on this forum. However, as CERN wrote, "emerge -DuN" is most definitely not the thing to run on this little board, nor the daily "emerge --sync". These are probably commands to send the SD card to an early grave, in addition to taking forever.

It's going to be interesting to find good ways to get the best aspects of Gentoo on the Pi without suffering its downsides. The prize will be a very streamlined distribution since all options that are considered bloat can be disabled.

No Pi here yet though, probably not until June.

Morgaine.
Intolerance is a failure of education. Education is predicated on tolerance of the uneducated.
User avatar
Posts: 141
Joined: Mon Mar 12, 2012 1:13 am
by  jannis » Sun May 20, 2012 5:10 am
drivintin wrote:Did any of you have any luck with cross-compiling? I am trying to see how an entire laymen overlay will work, so really need a lot more umph then just running QEMU. I just started the armv6zk-hardfloat-linux-gnueabi crossdev build. Really hoping it works out.


Yes, cross-compiling works just as well as distcc. When building your toolchain with crossdev be sure to sync before ( https://bugs.gentoo.org/show_bug.cgi?id=415937) and use "armv6j-hardfloat-linux-gnueabi" as triplet.

drivintin wrote:Also the SD card I have is total pain. Have any of you tried usb flash storage? It says you can boot from usb drives, but seems like most are putting the kernel on the SD then loading root from USB.


Yep, running from SD is pain. I'm using a 2.5"-SATA-HDD with external (USB 2.0) enclosure. and true, the kernel is in the SD-card since you cannot boot w/o SD.
Posts: 55
Joined: Tue Jan 17, 2012 3:48 pm
by  drivintin » Mon May 21, 2012 5:51 am
Ok, well here is where I sit.

I had Fedora on an SD card that was working. So I got a 32G flash drive that I am going to run Gentoo from. Expanded  disneysw image onto the usb drive, copied over the boot partition to the sd card, and modified the root to /dev/sda2. Problem is the kernel does find the USB stick, but doesn't seem to know to make it sda. I actually used the fedora kernel fine, except for the fact that it doesn't contain nfs, which i need to mount the compiling machine. 

So really, what I guess I am asking is:
disneysw Can I get your kernel .config so I can try building another one? also what special items do I need to boot the raspberry besides the kernel? I noticed there were other files in the boot partition, i just don't have them in front of me.
Posts: 7
Joined: Sat May 19, 2012 10:08 pm
by  coRpTitan » Mon May 21, 2012 6:36 am
Hello guys,
I've successfully deployed Gentoo on my RaspberryPI - CHOST="armv6zk-hardfloat-linux-gnueabi" .
I just wanna ask, if you are running Gentoo on your RaspberryIP box, what values in /etc/make.conf ? I'm interested at values for GCC.

I'm using:
CODE:  SELECT ALL
CFLAGS="-O2 -pipe -mcpu=arm1176jzf-s -march=armv6zk -mfpu=vfp -mfloat-abi=hard"
CXXFLAGS="${CFLAGS}"
CHOST="armv6zk-hardfloat-linux-gnueabi"


I think this should be correct, unfortunately when I'm compiling every single package I'm getting this warning:

warning: switch -mcpu=arm1176jzf-s conflicts with -march= switch

According to  http://dev.gentoo.org/~armin76/arm/chost.xml arm1176jzf-s should be armv6zk .

Is anyone having such wired warning message? I guess this message is not any serious problem, as it won't terminate compilation process but it's wired.
Posts: 3
Joined: Mon May 21, 2012 12:49 am
by  drivintin » Mon May 21, 2012 6:44 am
Ok, got a new kernel out of the github and looks like everything is booting up and mounting fine. not the trick is getting it to compile.

And suggestions on how to link the nfs share from my crossdev enviroment into the running Pi enviroment? 

Thanks again guys.
Posts: 7
Joined: Sat May 19, 2012 10:08 pm
by  jannis » Mon May 21, 2012 9:55 am
coRpTitan wrote:I think this should be correct, unfortunately when I'm compiling every single package I'm getting this warning:

warning: switch -mcpu=arm1176jzf-s conflicts with -march= switch


Just omit the march-switch. Check the resulting binaries with "readelf -A" and you'll see that the mcpu-switch sets the arch automatically.
Posts: 55
Joined: Tue Jan 17, 2012 3:48 pm
by  drivintin » Mon May 21, 2012 2:15 pm
So on the crossdev machine I am getting

CODE:  SELECT ALL
!!! /usr/armv6zk-hardfloat-linux-gnueabi/etc/make.profile is not a symlink and will probably prevent most merges.
!!! It should point into a profile within /usr/portage/profiles/
!!! (You can safely ignore this message when syncing. It's harmless.)


Looking at the profiles I assume I would point to /usr/portage/profiles/arm/arm6zk 
Except that doesn't exist, only a arm6j, is that where I should point it?

Sorry for all the questions, just new to this side of Gentoo.
Posts: 7
Joined: Sat May 19, 2012 10:08 pm
by  jannis » Mon May 21, 2012 2:26 pm
drivintin wrote:So on the crossdev machine I am getting

CODE:  SELECT ALL
!!! /usr/armv6zk-hardfloat-linux-gnueabi/etc/make.profile is not a symlink and will probably prevent most merges.


I told you here:  viewtopic.php?p=80903#p80903
that armv6j-hardfloat-linux-gnueabi is the right triplet
Posts: 55
Joined: Tue Jan 17, 2012 3:48 pm
by  drivintin » Mon May 21, 2012 2:50 pm
jannis wrote:I told you here:  viewtopic.php?p=80903#p80903
that armv6j-hardfloat-linux-gnueabi is the right triplet


Sorry, I think I understand now. The triplet uses armv6j then you use the make.conf of 

CODE:  SELECT ALL
 CFLAGS="-O2 -pipe -mcpu=arm1176jzf-s  -mfpu=vfp -mfloat-abi=hard"
CXXFLAGS="${CFLAGS}"
CHOST="armv6j-hardfloat-linux-gnueabi"


to set the hardware float, and the correct cpu. Right, I hope?
Posts: 7
Joined: Sat May 19, 2012 10:08 pm
by  jannis » Mon May 21, 2012 3:21 pm
Yep, that one looks right. Sorry if it was formulated a little harsh in the last post, I have a bit of a headache today. If you have kernel problems, here is one I compiled for someone on IRC:
http://rpi.kripserver.net/unofficial/

make.conf will be uploaded there in some minutes (need to connect and boot up my RPi).
*EDIT*: make.conf up:  http://rpi.kripserver.net/unofficial/make.conf
Posts: 55
Joined: Tue Jan 17, 2012 3:48 pm
by  drivintin » Mon May 21, 2012 10:40 pm
jannis wrote:Yep, that one looks right. Sorry if it was formulated a little harsh in the last post, I have a bit of a headache today. If you have kernel problems, here is one I compiled for someone on IRC:
http://rpi.kripserver.net/unofficial/

make.conf will be uploaded there in some minutes (need to connect and boot up my RPi).
*EDIT*: make.conf up:  http://rpi.kripserver.net/unofficial/make.conf



Not a problem, got it up and running, having some packages crash, but I will have to take a look at it a bit later. Glad you posted that make, I had not even thought about making a remote portage, makes it soo much faster and easier just to use a network copy and keeping it synced up.
Posts: 7
Joined: Sat May 19, 2012 10:08 pm
by  disneysw » Tue May 22, 2012 7:39 am
Subject: Gentoo Linux

drivintin wrote:Ok, well here is where I sit.

I had Fedora on an SD card that was working. So I got a 32G flash drive that I am going to run Gentoo from. Expanded  disneysw image onto the usb drive, copied over the boot partition to the sd card, and modified the root to /dev/sda2. Problem is the kernel does find the USB stick, but doesn't seem to know to make it sda. I actually used the fedora kernel fine, except for the fact that it doesn't contain nfs, which i need to mount the compiling machine. 

So really, what I guess I am asking is:
disneysw Can I get your kernel .config so I can try building another one? also what special items do I need to boot the raspberry besides the kernel? I noticed there were other files in the boot partition, i just don't have them in front of me.


(Sorry, been busy for the past few days trying to build firefox ~3 day compile and Java/Icedtea.)

You can get the .config from a running kernel by uncompressing /proc/config.gz

The kernel on my images is from the pi foundation. Initially I was going to build a stock kernel but a quick browse around github it became clear there a number of customisation were made to support the Pi and it would take time determine exactly what they were. I may revisit this in future.

BTW, given the compile times for some of the larger packages I for one am implementing a crosscompile system!
Posts: 14
Joined: Tue May 08, 2012 10:49 am
by  disneysw » Tue May 22, 2012 8:04 am
Subject: Gentoo Linux

And suggestions on how to link the nfs share from my crossdev enviroment into the running Pi enviroment? 

Thanks again guys.[/quote]

I'd suggest physically plugging your SD card/memorystick into your crosscompile system using a reader if necessary.

Then create an executable script file containing
#! /bin/bash
mkdir -p /mnt/gentoo
mount /dev/sdXXXX /mnt/gentoo
cp /etc/resolv.conf /mnt/gentoo/etc/
mount -t /proc none /mnt/gentoo/proc
mount -o bind /tmp /mnt/gentoo/tmp
mount -o bind /dev /mnt/gentoo/dev
mount -o bind /sys /mnt/gentoo/sys
chroot /mnt/gentoo /bin/bash

run the above script, to chroot into the filesystem on your memory card
run the commands

env-update
source /etc/profile

you should now be good to go!

The above is done from memory so there may be mistakes, if I remember when I get home I will post my 'script'.


The other alternative if you cant physically plug the root filesystem in is to start sshd on the Pi and use 'sshfs' to remotly mount it. Google sshfs & gentoo for more info.
Posts: 14
Joined: Tue May 08, 2012 10:49 am
by  jannis » Tue May 22, 2012 8:43 am
That way of cross-compiling won't work. You can't chroot into an ARM-system an a x86/x86_64 system because you cannot execute ARM-binaries on that host.
The way to go is to setup a cross-compiler on your x86/x86_64 system (easy with crossdev) and then use distcc for cross-compiling:
http://www.gentoo.org/doc/en/cross-compiling-distcc.xml

Just make sure that the RPi doesn't do any compilation (don't include 127.0.0.1 in /etc/distcc/hosts). Such a setup is working here. The only problem is memory-usage on linking (which is done on the emerging host, distcc off or on). One way around would be to use the gold linker on the RPi ( https://wiki.gentoo.org/wiki/Gold) but I've never tried it since I'm not going to install firefox or java on the Pi (or at least don't plan to do so)
Posts: 55
Joined: Tue Jan 17, 2012 3:48 pm
by  disneysw » Tue May 22, 2012 12:57 pm
Sorry, your correct. I am planning on trying using qemu, but I have yet to test this method.
See  http://www.gentoo.org/proj/en/base/embe ... t=1&chap=5 


distcc would probably be a faster but I have had versioning issues with the in the past that put me off using it. To be fair that was a good number of years ago.
Posts: 14
Joined: Tue May 08, 2012 10:49 am
by  jannis » Tue May 22, 2012 1:48 pm
Yep, with binfmt_misc and qemu_user this might work. Keep us informed how things work out.

I remember having had versioning issues, too. That was back in the days where x86_64-machines helped x86-machines keep their system up-to-date. Just today I set-up the i686-toolchain again and distcc is working. I guess the "-S"-parameter (use stable versions for the cross-toolchain) helped a lot.
Posts: 55
Joined: Tue Jan 17, 2012 3:48 pm
by  drivintin » Tue May 22, 2012 3:30 pm
So what I did was actually use crossdev to build the cross compile system tree. Then I made that directory tree an nfs share, and planned on actually chroot'ing into the nfs share. I have gentoo running from a 32GB flash drive right now just fine. A also used the github kernel on an sd card fo the boot. I am running into several packages that won't build is the problem I am having right now. I haven't had a chance to dive in and see what the deal is, but hope to get to that over the next day.
Posts: 7
Joined: Sat May 19, 2012 10:08 pm
by  disneysw » Tue May 22, 2012 11:09 pm
Ok, so here is the last of the Gentoo stages that I plan to release. In total I have three raspberryPi images at different build stages. All of them are designed to reduce the amount of time it takes to get Gentoo up and running as a platform. It's up to you to customise the images for your own needs. 

The first is basically a bootable stage3 install and will fit on a 4GB card
http://com.legato-solutions.raspberrypi ... 13V1-1.zip

The second builds on that to add X11 in prep for a Window Manager - Use this if you want to build KDE, Gnome etc.. Requires an 8GB card
http://com.legato-solutions.raspberrypi ... GB.img.zip


The final adds xfce4 as a window manager - Requires an 8GB card 
http://com.legato-solutions.raspberrypi ... GB.img.zip

I'll probably create and release a bootable USB Live version of Gentoo containing distcc and crossdev to allow one or more PC's to assist the compile process as some of the larger packages could/will take days on a physical device.



README:

This zip contains a bootable Gentoo Linux image for the RaspberryPi
It was created by gmcclean at legato-solutions.com as a checkpoint during the build of a customised solution for an embedded application. 

The default username is 'pi' 
The default password 'raspberry'

You can 'sudo -s' to root or use sudo to run elevated commands or 
manually start a GUI by typing 'startxfce4' after logging in.

22 May 2012 Requires 8GB or larger card
Added xfce desktop GUI, ffmpeg, mplayer, vlc, distcc
Support for distcc is not fully enabled yet (It still compiles locally). I will probably create a live USB drive consisting of a minimal gentoo plus distcc and crosscompile to accelerate building for the raspberryPi
Added rpi-update from  https://github.com/Hexxeh/rpi-update to enable simple firmware updates
Things still to do - fix hardware video acceleration!!!!! Move /usr/portage to separate file system to reduce footprint
Available from  http://com.legato-solutions.raspberrypi ... GB.img.zip

15 May 2012 Requires 8GB or larger card
Added xorg-base as a prelude to building an X11 Window Manager. Personally going with xfce but you could build/use KDE, Gnome or something else. The choice is yours.......
Available from  http://com.legato-solutions.raspberrypi ... GB.img.zip


13 May 2012 - Base Gentoo install on RaspberryPi suitable for someone looking for a headless solution with minimal footprint and easily fits on a 4GB SD card. Available from 
https://s3-eu-west-1.amazonaws.com/com. ... 13V1-1.zip

(V1.1)
Fixed /etc/make.conf
Resolved issue that would have effected eth0

(V1.0)
Created ext4 filesystem with extra inodes
Installed Stage3
chroot into system
kernel and modules take from debian6-19-04-2012 image
Removed serial tty from /etc/inittab
Updated /etc/make.conf
Added nano, openntpd, sudo
Set /etc/locattime and /etc/timezone to Europe/London
Set uk keyboard in /etc/conf/keymaps
Updated /etc/conf.d/hwclock so avoid error when trying to read no-existent clock 
Created "pi" user with "raspberry" password
sudoers updated to give access to 'pi' account
Updated /etc/fstab
Posts: 14
Joined: Tue May 08, 2012 10:49 am
by  coRpTitan » Wed May 23, 2012 7:08 pm
jannis wrote:Just omit the march-switch. Check the resulting binaries with "readelf -A" and you'll see that the mcpu-switch sets the arch automatically.

I've did it, and here is output:
CODE:  SELECT ALL
raspberrypi ~ # readelf -A /usr/bin/mc
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "ARM1176JZF-S"
  Tag_CPU_arch: v6KZ
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_FP_arch: VFPv2
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_HardFP_use: SP and DP
  Tag_ABI_VFP_args: VFP registers
  Tag_DIV_use: Not allowed
  Tag_Virtualization_use: TrustZone
raspberrypi ~ #
Notice that Tag_CPU_arch is v6 K Z

and according to official gcc documentation(  http://gcc.gnu.org/onlinedocs/gcc-4.5.3 ... RM-Options ) it should be: armv6 Z K .

So I guess it's wrongly in gcc documentation or in GCC itself, but I don't care, I've omitted "-march=" completely and warning is no more here.

BTW: Did anyone tried to deploy armv6 j-hardfloat-linux-gnueabi onto rpi and then change CHOST to armv6 zk-hardfloat-linux-gnueabi and recompile gcc?

I was getting error, when compiling it, I've tried to purge ccache cache, disabled distcc and result was still the same. After that I've used USE="vanilla" emerge -av gcc and it worked, so I guess Gentoo patchset is preventing it to compile. So if you will go through this, you can safe lot of testing if you will emerge vanilla gcc :]
Posts: 3
Joined: Mon May 21, 2012 12:49 am
by  mike632t » Wed May 23, 2012 9:58 pm
jannis wrote:There are stage3-tarballs but I didn't yet create a stage4-image. I could create you a SD that contains just bootloader-stuff (kernel, GPU firmware on the FAT-partition) and the Gentoo-stage3 files on a 4GB-base if you want.


That would be a great help - this will only be the second time I've tried a Gentoo install as I normally stick with Debian. (Yep you guessed it - the last time wasn't a huge success, but I've learn't a little more since then!)
Posts: 32
Joined: Sat May 19, 2012 7:56 pm
Location: UK
by  playmobot » Fri Jun 01, 2012 12:05 am
disneysw wrote:Ok, so here is the last of the Gentoo stages that I plan to release. In total I have three raspberryPi images at different build stages. All of them are designed to reduce the amount of time it takes to get Gentoo up and running as a platform. It's up to you to customise the images for your own needs. 

The first is basically a bootable stage3 install and will fit on a 4GB card
http://com.legato-solutions.raspberrypi ... 13V1-1.zip

The second builds on that to add X11 in prep for a Window Manager - Use this if you want to build KDE, Gnome etc.. Requires an 8GB card
http://com.legato-solutions.raspberrypi ... GB.img.zip


The final adds xfce4 as a window manager - Requires an 8GB card 
http://com.legato-solutions.raspberrypi ... GB.img.zip

I'll probably create and release a bootable USB Live version of Gentoo containing distcc and crossdev to allow one or more PC's to assist the compile process as some of the larger packages could/will take days on a physical device.



README:

This zip contains a bootable Gentoo Linux image for the RaspberryPi
It was created by gmcclean at legato-solutions.com as a checkpoint during the build of a customised solution for an embedded application. 

The default username is 'pi' 
The default password 'raspberry'

You can 'sudo -s' to root or use sudo to run elevated commands or 
manually start a GUI by typing 'startxfce4' after logging in.

22 May 2012 Requires 8GB or larger card
Added xfce desktop GUI, ffmpeg, mplayer, vlc, distcc
Support for distcc is not fully enabled yet (It still compiles locally). I will probably create a live USB drive consisting of a minimal gentoo plus distcc and crosscompile to accelerate building for the raspberryPi
Added rpi-update from  https://github.com/Hexxeh/rpi-update to enable simple firmware updates
Things still to do - fix hardware video acceleration!!!!! Move /usr/portage to separate file system to reduce footprint
Available from  http://com.legato-solutions.raspberrypi ... GB.img.zip

15 May 2012 Requires 8GB or larger card
Added xorg-base as a prelude to building an X11 Window Manager. Personally going with xfce but you could build/use KDE, Gnome or something else. The choice is yours.......
Available from  http://com.legato-solutions.raspberrypi ... GB.img.zip


13 May 2012 - Base Gentoo install on RaspberryPi suitable for someone looking for a headless solution with minimal footprint and easily fits on a 4GB SD card. Available from 
https://s3-eu-west-1.amazonaws.com/com. ... 13V1-1.zip

(V1.1)
Fixed /etc/make.conf
Resolved issue that would have effected eth0

(V1.0)
Created ext4 filesystem with extra inodes
Installed Stage3
chroot into system
kernel and modules take from debian6-19-04-2012 image
Removed serial tty from /etc/inittab
Updated /etc/make.conf
Added nano, openntpd, sudo
Set /etc/locattime and /etc/timezone to Europe/London
Set uk keyboard in /etc/conf/keymaps
Updated /etc/conf.d/hwclock so avoid error when trying to read no-existent clock 
Created "pi" user with "raspberry" password
sudoers updated to give access to 'pi' account
Updated /etc/fstab



Thanks for the great work would you be able to have a twm .img with rpi-update?
Posts: 12
Joined: Wed Aug 24, 2011 9:25 pm
by  disneysw » Fri Jun 01, 2012 1:13 pm

Thanks for the great work would you be able to have a twm .img with rpi-update?



np

The image created on 15 May 2012 ( http://com.legato-solutions.raspberrypi ... GB.img.zip) includes twm but not the firmware update app. However it only takes a few minutes to install it by going to Hexxeh’s blog ( http://hexxeh.net/?p=328117855) and following the instructions.
Posts: 14
Joined: Tue May 08, 2012 10:49 am
by  whitelabrat » Sun Jun 03, 2012 10:55 pm
Big thanks for your build images disneysw!

I've been able to add apache2, php, and mysql along with other odd and ends. Building midori right now.


这篇关于march和mtune的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/196646

相关文章

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

javascript中break与continue的区别

在javascript中,break是结束整个循环,break下面的语句不再执行了 for(let i=1;i<=5;i++){if(i===3){break}document.write(i) } 上面的代码中,当i=1时,执行打印输出语句,当i=2时,执行打印输出语句,当i=3时,遇到break了,整个循环就结束了。 执行结果是12 continue语句是停止当前循环,返回从头开始。

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

ActiveMQ—Queue与Topic区别

Queue与Topic区别 转自:http://blog.csdn.net/qq_21033663/article/details/52458305 队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:         1、点对点(point-to-point,简称PTP)Queue消息传递模型:         通过该消息传递模型,一个应用程序(即消息生产者)可以

深入探讨:ECMAScript与JavaScript的区别

在前端开发的世界中,JavaScript无疑是最受欢迎的编程语言之一。然而,很多开发者在使用JavaScript时,可能并不清楚ECMAScript与JavaScript之间的关系和区别。本文将深入探讨这两者的不同之处,并通过案例帮助大家更好地理解。 一、什么是ECMAScript? ECMAScript(简称ES)是一种脚本语言的标准,由ECMA国际组织制定。它定义了语言的语法、类型、语句、

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

msys2 minggw-w64 cygwin wsl区别

1 mingw-w64,这是gcc一直win平台下产生的,所以是win版的gcc,既支持32也支持64bit 2cygwin专注于原样在windows上构建unix软件, 3msys让Linux开发者在windows上运行软件,msys2专注于构建针对windows api构建的本机软件 4 wsl  windows subsystem for linux 是一个在windows 10 上能

【Java中的位运算和逻辑运算详解及其区别】

Java中的位运算和逻辑运算详解及其区别 在 Java 编程中,位运算和逻辑运算是常见的两种操作类型。位运算用于操作整数的二进制位,而逻辑运算则是处理布尔值 (boolean) 的运算。本文将详细讲解这两种运算及其主要区别,并给出相应示例。 应用场景了解 位运算和逻辑运算的设计初衷源自计算机底层硬件和逻辑运算的需求,它们分别针对不同的处理对象和场景。以下是它们设计的初始目的简介: