You want one..What are some good reasons to buy the latest Rpi 4?
Applications that uses more than 700Mb of memory most likely.. like proper desktop work where you want to have many browser tabs open while still being able to edit code/documents as an example.What are some applications that can only be handled by the latest Rpi4 that cannot be handled by older versions?
I wouldn't that call heavyW. H. Heydt wrote: ↑Sun Sep 08, 2019 4:10 pmNote that unless you go tab-happy in a browser, it is very likely that a Pi4B2 will be sufficient for typical "PC desktop" uses. The Pi4B4 is more aimed at very heavy programming and development work.
According to the lead developer of FidoBasic, given a project consisting of a million lines of code, serious developers refactor the code into 100,000 files consisting of ten lines each and then use the Eclipse IDE to edit all the files at the same time. Moreover, with n-level meta programming, it is possible that compiling a 10-line file will consume all available memory even on a 4GB Raspberry Pi 4B.
Depending on what you're doing but one typical usage (for me) over last 5-6 years of professional engagement was:
I was skeptical considering doing 'heavy duty' work on the 4GB PI4, but decided to give it a shot. Needed to compile the GNU toolchain for 32bit RISC-V architecture, so I tried it on the PI4. Built this project: https://github.com/riscv/riscv-gnu-toolchain. Used make -j8 to make sure the little ARM 4 core was kept busy. Swap file disabled.clicky wrote: ↑Mon Sep 09, 2019 7:40 pmDepending on what you're doing but one typical usage (for me) over last 5-6 years of professional engagement was:
Pretty much 'full stack' dev (end to end + all the tests)
- local DB (mysql, oracle in docker, mssql in docker, postgress, etc)
- DBeaver (won't work on Pi4) or Sqirrel
- IDE for Java (IntelliJ works nicely on Pi4 - unlike Eclipse
) and JavaScript (Visual Studio Code)
- command line tools including maven for builds and running tests:gherkin, selenium, and such + server itself
- oh, and a browser with console on, too...
No way all would fit 4GB. Even if I move DB to separate Pi, running server code along with IDE wold be tight fit - build and/or running tests at the same time - not really.
LibGDX I don't consider 'heavy' developing - I produced RPi (Buster) version of it. Not much - some scripts changes, some light development on missing (moved forward) interface implementations and such - and still couldn't have IDE and maven build in the memory at the same time (1.5mil lines of code - probably only a portion of it compiled really).
I had to swap my 8GB Dell laptop 5+ years ago for 16GB MBP to do so. 16GB is still holding![]()
Having RPi with 8GB (and then times two or three) would do - it would allow much more serious development on RPi. 4GB - nor so.
Code: Select all
pi@raspberrypi:~/riscv-gnu-toolchain $ cloc .
227867 text files.
189320 unique files.
62558 files ignored.
7 errors:
Line count, exceeded timeout: ./qemu/roms/openbios/arch/ppc/briq/tree.fs
Line count, exceeded timeout: ./qemu/roms/openbios/arch/ppc/pearpc/tree.fs
Line count, exceeded timeout: ./riscv-gcc/libgo/go/cmd/go/internal/modfile/read_test.go
Line count, exceeded timeout: ./riscv-gcc/libgo/go/cmd/go/script_test.go
Line count, exceeded timeout: ./riscv-gcc/libgo/go/internal/x/net/idna/tables.go
Line count, exceeded timeout: ./riscv-gcc/libgo/go/net/http/requestwrite_test.go
Line count, exceeded timeout: ./riscv-gcc/libgo/go/regexp/exec_test.go
github.com/AlDanial/cloc v 1.81 T=832.86 s (199.0 files/s, 43490.6 lines/s)
---------------------------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------------------------
C 65869 2100770 2499642 11708551
C/C++ Header 22202 639654 1189696 3070868
Bourne Shell 1209 295501 270273 1587828
D 11022 109782 107451 1546826
Assembly 11854 147161 244312 1417193
PO File 213 469343 625457 1254075
C++ 24441 240596 304737 1152636
Ada 6194 279455 374345 789346
Go 4092 83401 125047 624661
Markdown 499 52498 0 408885
Expect 2610 57901 85677 281835
Perl 600 36000 32447 261693
Python 1161 58830 70683 240827
m4 551 17839 6543 162022
Fortran 90 5687 26501 44153 149565
reStructuredText 501 37206 25302 76166
XML 405 9971 2203 75910
make 1870 16805 18898 73268
Windows Module Definition 227 7146 123 56701
HTML 313 2584 64 46279
TeX 38 5867 14444 38191
yacc 34 6178 4210 35448
lex 736 1028 592 32044
Forth 222 5686 6425 25296
SVG 52 4 131 23505
JSON 245 933 0 22054
Bourne Again Shell 260 5180 6937 18939
Objective C 530 5198 3437 18566
C# 239 230 506 15207
Scheme 82 1798 380 14633
Fortran 77 525 1584 5968 13435
Pascal 86 2094 49897 8966
Java 27 671 226 8882
ANTLR Grammar 15 879 610 8830
Objective C++ 250 2432 1588 8281
OCaml 28 440 194 7955
Haxe 5 1163 11 6722
awk 67 899 1219 6644
MSBuild script 18 1 0 6327
Smalltalk 9 1 0 4888
CMake 70 762 691 3787
Fortran 95 108 1016 3014 3139
XSD 1 90 44 3053
Windows Resource File 50 394 249 2862
Visual Basic 10 403 870 2722
PHP 26 669 693 2664
WiX include 11 162 256 2406
CSS 10 99 37 1973
R 54 215 104 1848
YAML 22 168 152 1756
DOS Batch 68 182 60 1563
Lisp 12 166 457 1140
Tcl/Tk 9 230 159 1091
F# 43 225 0 1067
INI 10 66 6 1003
SWIG 5 289 83 990
XSLT 17 186 138 775
IDL 3 8 0 713
GDScript 48 158 660 654
Glade 1 58 0 603
NAnt script 4 124 0 581
sed 34 28 81 482
diff 2 20 435 439
Korn Shell 1 55 68 435
OpenCL 6 91 71 433
WiX source 2 47 36 390
Rust 7 110 100 331
PowerShell 2 65 93 309
Cython 1 78 41 218
Standard ML 1 34 28 215
MATLAB 6 83 3 207
vim script 4 50 71 193
C Shell 1 3 3 148
DTD 11 60 55 124
SQL 2 12 9 121
Haskell 37 17 0 121
RobotFramework 1 0 0 106
Specman e 12 2 0 94
Mathematica 9 1 0 85
Kermit 3 4 20 83
Elixir 11 0 0 44
Protocol Buffers 2 6 0 41
WiX string localization 1 15 21 34
SAS 1 14 22 32
Ruby 1 5 4 21
GLSL 3 9 0 21
ProGuard 2 2 14 20
Gencat NLS 5 0 3 16
Ant 1 0 0 14
Brainfuck 1 3 4 10
TOML 1 0 1 6
---------------------------------------------------------------------------------------
SUM: 165741 4737694 6132684 25351131
---------------------------------------------------------------------------------------
pi@raspberrypi:~/riscv-gnu-toolchain $
I didn't say 4GB is too small - just not up to current requirements for 'heavy development' (some corporate end to end stack of technologies and IDEs). I blame the latest software for the issue - modern IDEs are monsters when it comes to resources (CPUs and memory) and we have more and more 'apps' that are monstrous - web browsers with tiny bit of JS + CSS packaged as standalone apps. They just gobble memory like there's no tomorrow. I won't go on a tangent there trying to point to what I've seen as MD5 hash library in that technology doingjamesh wrote: ↑Mon Sep 09, 2019 9:00 pmSo funny when people say 4GB is too small.
When I started out 32KB was a lot. I did fairly hardcore C development on 386 PC's with 4MB RAM. C code hasn't changed, but what has changed is the ability of the people writing the development systems to write decent memory efficient code.
Since Eclipse would be perfect on Pi4 with its incremental compilation strategy I invested some time to understand it. I've found out that project dropped support for 32bit some time ago - so it is not just matter of compilation for arm platform (I've mastered it - LOL) but matter of retrofitting support for 32bit again. Not impossible but I've left it for some time in future when I get more time/motivation to look at it again. I have asked a few people around to help but so far got nothing back
Oh, by all means - 4GB suddenly moved it from 'masochist' to only 'slightly more patient' developer niche. Currently I am missing FreeCAD and Eclipse the most - rest of it works quite well.
Eclipse is a monumental resource pig, even on high end PC!
While not incremental as you edit it, my understanding is that the traditional Unix make utility coupled with a reasonable factorization of the problem into separate files will rebuild only the parts of the project changed between compilations.
LOL - I think that killed it at the end. But, that's only if you pick Eclipse with everything in it. If you go with only Eclipse for Java developers (not JEE and all the other 'goodies' - or crap however you see it) then it is far more reasonable.
+1 - Only downside is that by default 64bit OS/apps do take slightly more memory than 32bit so we're going to lose some of benefits having 4GB of RAMejolson wrote: Since Eclipse seems to be another one of those 64-bit-only applications, does it work on the 4GB Pi 4B using the AArch64 version of Debian?
Interesting! Have you moved the root filesystem to the RAID array, or is that still on SD?6sn7 wrote: ↑Tue Sep 10, 2019 11:11 pmI bought a Rpi4 with 4G RAM primarily for a low cost NAS for doing rsync backups from various systems.
Configured a set of flash drives on a USB hub RAID10 with a hot spare. Mdraid is not that fast on the Pi so the 4GB of RAM provides enough buffer cache head room to make it worth while. The initial rsync of a whole system is somewhat painful, but the subsequent incremental rsyncs are okay.
jcyr wrote: ↑Wed Sep 11, 2019 12:24 amInteresting! Have you moved the root filesystem to the RAID array, or is that still on SD?6sn7 wrote: ↑Tue Sep 10, 2019 11:11 pmI bought a Rpi4 with 4G RAM primarily for a low cost NAS for doing rsync backups from various systems.
Configured a set of flash drives on a USB hub RAID10 with a hot spare. Mdraid is not that fast on the Pi so the 4GB of RAM provides enough buffer cache head room to make it worth while. The initial rsync of a whole system is somewhat painful, but the subsequent incremental rsyncs are okay.
Edit: Never mind... I doubt that would work for software RAID.