26 ms·
IntelliJ Idea 2020.3.1 Is Out with Apple Silicon Support
- rc_mob 6y agoDo Some apps not run on m1? I’ve never heard this.
- refactor_master 6y agoI have a PyInstaller-compiled Qt .app that crashes on startup. Weird, because Intel Python in Intel PyCharm is actually working just fine.
- The_rationalist 6y agoDocker for example (might have been fixed now)
- bluedino 6y agoDocker works you just can’t virtualize x86 images
- LukeLambert 6y agoThe tech preview[1] works and you can run x86 images (though you get a warning from the CLI). [1] https://www.docker.com/blog/download-and-try-the-tech-preview-of-docker-desktop-for-m1/ https://www.docker.com/blog/download-and-try-the-tech-previe...
- tonyedgecombe 6y agoI would assume it's because they depend on the JVM.
- millerm 6y agoX86 JVM runs fine under Rosetta2. Will will be faster now. Looking forward to it!
- epilogue 6y agoAs mentioned in the release notes IntelliJ ran under Rosetta 2 previously (Apples x86 to ARM emulation layer) but this new release adds native ARM (Apple Silicon) support.
- millerm 6y agoI believe they’re just referring to the fact it’s native and it’s no longer being utilizing Rosetta2. Since it’s bundled with its own JRE/JDK, and other components, perhaps they just have it all compiled for M1. I was supposed to have my new MacBook Pro a couple weeks ago, but my company ordered an Intel when I specifically told them NOT to. I need to test these things out before I get them to my developers as well. Plus yes, I want a new toy. I’m waiting for a mini (for myself) to show up at my house, but I waited a long time, and that won’t be here until the end of the month. Grrrr. I really want to test Logic Pro with it!
- needusername 6y ago> perhaps they just have it all compiled for M1 That won't work because of the missing W^X support in upstream releases. You need to backport patches.
- deleted 6y ago[deleted]
- rk06 6y agowell here you go: apps are natively compiled for instruction sets eg: x86, x64, ARM64 etc. M1 has an new instruction set. so Apps targeting (x64, x86) need to compile specially to run natively on M1 chip. currently there are few apps which are native as the chip is new. Apple has provided rosetta emulator, which will emulate x86 apps to run on M1 strange, everyone talked rosetta emulator in every single benchmark. NOTE: the above is my current understanding. it may be slightly or grossly incorrect in some areas
- jensv 6y agoAnyone know what rewriting for M1 actually entails? Guessing maybe you just recompile all your libraries for M1 and fix any errors and warnings that crop up.
- jensv 6y agoHaving said that some consideration to keep in mind: - audio code needs to be optimized for real time thread constrains. Many optimizations usually made by vectorizing rather than threading that would've lead to locks and synchronization not always possible for real-time processing. So not all SIMD code can be compiled just by changing a flag. - machine specific code. While rare. Some companies still got such code for various reasons. And needs more complex transition. - Not all companies were able to obtain DTK. We for example, got our first M1 machine 3 weeks ago. - Backward support. While we'd like to have universal builds, musicians use their systems for years. We still support 10.7. With Big Sur Apple seems to break SHA1 signs making builds from Big Sur work reliably only on 10.11 or newer. (The first release to support SHA256 codesigns) https://news.ycombinator.com/user?id=rock_artist https://news.ycombinator.com/user?id=rock_artist
- JosephRedfern 6y agoAny "hot spots" that have been optimised by writing assembler has to be re-written. Same applies to any dependencies with similar optimisations.
- danieldk 6y ago
- troupe 6y agoGoogle Drive Streaming specifically will not work on Apple Silicon yet.
- ricardojoaoreis 6y agoWhich JVM are they using?
- The_rationalist 6y agoThey are using a light fork with most patches improving font rendering/anti-aliasing https://github.com/JetBrains/jdk8u https://github.com/JetBrains/jdk8u https://github.com/JetBrains/JetBrainsRuntime https://github.com/JetBrains/JetBrainsRuntime
- random5634 6y agoCurious about the speed diff - could some give notes on that?
- drewjoh 6y agoSpeed difference of M1 (native) vs Intel (I have an i7 Mac mini and M1 Mac mini): It is snappier and more responsive than ever before, but that's to be expected since the M1 single-core performance is so much better. It feels like a breath of fresh air! Speed difference of Rosetta vs native: It was unusable for me on Rosetta. Super delayed responses for everything, and used a lot of memory. I temporarily switched to the Exploration version of VS Code while I waited for Jetbrains to update. :)
- blorenz 6y agoI also can't agree more! IntelliJ IDEs have been my go-to since giving it a try during the End of the World sale in 2013. The IDEs have a robust feature set that makes development a pure joy. That joy has subsided in recent years with performance on Mac Intel. There are several open YouTrack issues regarding this: looking to move to Metal; 4k external monitor performance issues; scrolling. This release makes the IDE so incredibly fast! Indexing dependencies happens magnitudes faster than Intel version. With many of my projects I have used in it, if you tried to hold your breath from the time you started the IDE until it was ready to begin editing you'd have passed out unconscious. Now, the IDE is ready to begin work quicker than you could recover from a heavy sneeze! It IS a breath of fresh air. Searching all files is about instantaneous; navigating file trees is snappy and responsive; opening Settings modals happens quickly. What a joy!
- misja111 6y agoMost of the features that you point out are IO bound. E.g. indexing dependencies, navigating/ searching files. Are you sure that the speed up is because of the new IDE release and not because of a new laptop?
- 6y ago
- The_rationalist 6y agoWhat changes are needed to make Aarch64 support? Java is write it once run it everywhere, the code is generated at runtime and can fully exploit the latest arch specific extensions like AVX 512 automatically Edit: is it because they ship a custom jdk and that the jdk is in C++?
- krzyk 6y agoYes, they ship custom JDK (BTW. This is now expected of all Java apps - jlink and lack of JRE since version 11) so they need to ship JDK that is Aarch64
- pjmlp 6y agoEven if it was 100% written in Java (like GraalVM and RikesVM), the JIT, AOT and GC need to be updated for Apple Silicon.
- danieldk 6y agoApple Silicon (as you know) is AArch64. Given that OpenJDK already had AArch64 support (e.g. through years of Linux AArch64 support, but also OpenJDK for iOS) and macOS support, I would bet that it is mostly a matter of making the build infrastructure aware of the macOS + AArch64 combo. It's not like JIT, AOT, etc. need full new ports to Apple Silicon (in fact, the Azul builds were available pretty much immediately after the release of M1).
- pjmlp 6y agoNot quite, it is almost AArch64, plus some additional goodies. Azul uses their own implementation anyway, so whatever they do isn't a reflection of what OpenJDK supports right now.
- rcoveson 6y agoOpenJDK does support AAarch64 for JDK 8 onwards[0]. Available as part of Ubuntu 18.04 as well[1]. I've used it quite a bit, and for the most part it's slightly faster than it was on x86_64 (though how much of this is due to JIT differences as opposed to core performance I can't say). 0. https://hg.openjdk.java.net/aarch64-port/jdk8/ https://hg.openjdk.java.net/aarch64-port/jdk8/ 1. https://packages.ubuntu.com/bionic/arm64/openjdk-8-jdk/filelist https://packages.ubuntu.com/bionic/arm64/openjdk-8-jdk/filel...
- high_derivative 6y agoDoes this mean Pycharm et al. will also have support?
- lr4444lr 6y agoI know it's not the main purpose of this post, but does anyone here have any singularly powerful steps they took to improve performance on a JetBrains IDE after picking the low hanging fruit of the Java heap size and disabling unused plugins? Especially when running the debugger? (Using PyCharm specifically)
- rubyn00bie 6y agoYes, actually. Two things to change to (likely) boost your JVM+IntelliJ performance: 1. Use the new ZGC garbage collector. -XX:+UnlockExperimentalVMOptions -XX:+UseZGC 2. If you're using ZGC, it is fucking imperative you do not use compressed pointers. It will totally hose your system and you'll see unbelievable RAM thrashing (800mb to 16gb and back again within a few hundred milliseconds in one smallish project I have [and thats on a 5950x]). That is to say, after enabling ZGC, ensure you do NOT have the following configuration line: -XX:+UseCompressedOops I've been using ZGC for a few days and I have to say it's been fucking great. Before I'd get really long hangs due to GC; or eventually the editor would grind to a halt (after like 8 hours of usage). I've had the editor open for at least 48 hours now and it's just as fast as it was when I originally opened it.
- andrewaylett 6y agoSomewhat unfortunately, I just tried that (on Mac, latest CLion) and it didn't work. I edited the `vmoptions` file to remove `-XX:+UseConcMarkSweepGC` and `-XX:+UseCompressedOops`, added `-XX:+UnlockExperimentalVMOptions` and `-XX:+UseZGC`, and the IDE failed to start until I restored the original file content.
- dantiberian 6y agoA big one is to make sure you’re excluding directories that you don’t want indexed.
- bpodgursky 6y agoThis is a huge one. If PyCharm is indexing one of your PyPi or NPM caches, the memory footprint dwarfs your active code by orders of magnitude.
- raverbashing 6y agoHow much of IntelliJ is native code, JVM or Python code (or maybe something else)?
- shemnon42 6y agoAlmost all JVM, mix of Java and Kotlin. https://github.com/JetBrains/intellij-community https://github.com/JetBrains/intellij-community
- raverbashing 6y agoDoes Apple ship an optimized JVM or is this under Rosetta?
- jeffbee 6y agoMy mac did not come with a working native JDK, I had to install the Azul one built for M1.
- morvita 6y agoJetBrains ships a custom JVM that their IDEs run on. https://confluence.jetbrains.com/display/IDEADEV/JetBrains+Runtime+Environment https://confluence.jetbrains.com/display/IDEADEV/JetBrains+R...
- irateswami 6y agoAnd here I was hoping that M1 would be the beginning of the end for intellij(unk). Java needs to die a fiery death.
- WhoCaresLies 6y agoi agree, using JVM for tooling is a huge mistake i hope they won't use M1 as an excuse for new baseline when comparing performance it still is super slow for what it does
- AlexMoffat 6y agoSaving time by not punctuating your comment?
- WhoCaresLies 6y agomy contribution to save our planet, less bytes to send
- spuz 6y ago> it still is super slow for what it does I disagree - it's much faster than any IDE of equal strength that I've come across.
- troupe 6y agoWhat IDE are you comparing it to?
- onetom 6y agoIt's important to compare it to a solution with similar capabilities, like VS Code + some LSP server and you will see that both memory and cpu consumption-wise it's almost the same weight class nowadays...
- mrw 6y ago> Java needs to die a fiery death. Care to elaborate why?
- vishwajeetv 6y agoI am really really waiting for new macbook pro 16" with M1X chipset to launch!
- musicale 6y agoI wonder what they changed? You would think that Java code would simply be faster out of the gate with a native JVM. Perhaps there's more natively compiled Kotlin code than I expected? Although I kind of like IDEA and (particularly) PyCharm in terms of functionality (and dark mode, which they've had for a while), I quit using them because I didn't like the sluggish/underwater feel.
- sumanthvepa 6y agoI think they use a slightly custom JVM that modified slightly from the standard one. This release must include such changes, I guess.
- gumby 6y ago> I quit using them because I didn't like the sluggish/underwater feel. Thanks for posting this -- I thought it was just me.
- needusername 6y agoOfficially there is no upstream release of Java that supports macOS on ARM64 due to the lack of W^X support. You have to manually backport the patches or build from master.
- ogre_codes 6y agoSeems like Apple's timing on the M1 releases is spot on. Wide availability of the M1 based systems now is enabling developers to port software quickly. By the time the Pro machines are launched, it's likely most of the pro tools will be migrated across.
- izacus 6y agoThe fact that they actually gave a preview hardware to developers months ago kinda helped.
- ogre_codes 6y agoAbsolutely. All around, it's been a well organized migration. I'd originally thought they would launch one of their faster CPUs right off the bat, but in retrospect this makes more sense. If they'd pushed out the 16" MacBook Pro, the expectations that Pro software would work out the gate would be a lot higher.
- mailslot 6y agoYay. They are near to officially demanding more RAM.
- nvahalik 6y agoOne of the things that I wish IntelliJ had was some way of doing some "real world" benchmarks. It'd be great to know exactly what sort of speed improvements this might bring (or if it's really faster at all). It _seems_ like IJ could be scripted using the plugin system to do things like: - Load and apply formatting to a 1 MB source file. - Index an entire project. - Run a regex find/replace on a code base. - Load 50 code files and time how long it takes for each to be ready to display.
- AtlasBarfed 6y agoMac meta-scripting / macros / virtual keyboard/mouse scripting exists.
- random5634 6y agoGreat idea!
- deleted 6y ago[deleted]
- skybrian 6y agoThis would be difficult to make meaningful because projects vary by orders of magnitude in performance-relevant metrics, as does user behavior. IntelliJ has an enormous number of features and people use their own subset of them. Not to mention things like plugins and other options for customization. It's a huge space.
- mdaniel 6y agoBut as far as making perf improvements to IJ itself, that actually would be meaningful: it would allow them to say "commit eeffaa takes 2m16.555ms" to perform the steps outlined by nvahalik, but "commit aabbff takes 2m01.222ms" and thus it's getting better for that metric I wholeheartedly agree there will always be very weird setups on very weird source, but if they can make the 80/20 run faster, hopefully a rising tide will lift all boats kind of thing
- 6y ago
- cube2222 6y agoDoes this also count for other Jetbrains IDEs (as they have a common core)?
- bibinou 6y agoHere is what is available: https://i.imgur.com/hA1Pq0Z.png https://i.imgur.com/hA1Pq0Z.png IntelliJ, WebStorm, DataGrip, GoLand, RubyMine
- davidjnelson 6y agoThat’s exciting, I was just looking at the status of this yesterday.
- doctor_eval 6y agoWhy is it called AArch64 and not Arm64?
- brnt 6y agoBecause AppleArch64 is not the same as Arm64.
- bboreham 6y agoApple originally called it ARM64; the AArch64 name comes from ARM and was used by everybody else so Apple adopted it. https://www.phoronix.com/scan.php?page=news_item&px=MTY5ODk https://www.phoronix.com/scan.php?page=news_item&px=MTY5ODk
- my123 6y agoArm's own naming nomenclature. It's a trademark thing.