服务器大内存jvm配置.。。

公司现在要上线java项目,提供了32G的内存机器,8核,我要怎么设置jvm的大小,
如果设置的太大会不会gc回收的时间过长造成系统卡顿或者内存泄露,怎么在内存
利用和性能调优中权衡呢,就大神解答

1个回答

尽量不要调用System.gc(),它会触发fullgc,而fullgc的频率应该是尽量降低的。尽管有些第三方库调用了它,还是不推荐在应用逻辑或业务逻辑内调用它。

如果重视实时性,建议分配较小的堆,单机运行多个jvm进程。采用标记清除算法,并打开内存压缩开关,指定gc线程数最多是cpu核心数,使用并行回收算法回收年轻代,年轻代尽量大,保证绝大多数对象都在年轻代回收,适当增加对象在幸存区的复制次数,减少fullgc次数和降低fullgc造成的停顿。注意控制PermGen大小,可通过反复测试找到整个应用使用的最大PermGen值,最终确定的值只需要比测试时验证的值稍大即可。适当减少线程栈内存尺寸,增加每进程可支持的线程数。

如果重视吞吐量,对实时性没有要求,可以运行单机单jvm进程,采用大堆。

注意新生代与年老代的比例,伊甸区与幸存区的比例,这两个比例。

如果使用了jdk7,可以尝试下G1算法,它是目前最快的gc算法。

注意,不论是重视实时性还是重视数据吞吐量,所有jvm进程堆内存最好不要超过物理内存的3/4,根据操作系统内运行的服务数量和其它进程占用的内存这一数字还需要调整。如果服务器只运行同样的java服务,3/4是个不错的参考数字。

如果是作为服务器可在启动jvm时增加-server参数,这个参数针对服务器有些默认优化,可在此基础上基于测试结果和线上运行结果做针对性优化。另外,作为服务器的话,将最大堆和最小堆的值设为一样大,节省不断调整堆尺寸的cpu开销。

参数不明白的可以上网查,本人认为比较重要的几个参数是:-Xms -Xmx -Xmn MaxTenuringThreshold GCTimeRatio UseConcMarkSweepGC CMSInitiatingOccupancyFraction SoftRefLRUPolicyMSPerMB

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JVM高人看看这个配置是什么问题导致内存持续增长
有哪位JVM的高人能否看看我们系统下面的jvm的内存情况,到底是哪方面的问题,这个是属于正常还是不正常。非常感谢高人的指点。目前发现产品内存在持续增长。 jvm的参数配置如下: JAVA_OPTS="-Xmx10500M -Xms10500M -Xmn600M -XX:PermSize=800M -XX:MaxPermSize=800M -Xss512K -XX:+DisableExplicitGC -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:/opt/itms/log/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/itms/log -Djava.util.logging.config.file=itmscpelog.properties 下面是从服务器打印的gc的log信息。 Pool: Code Cache (Non-heap memory) Peak Usage : init:2555904, used:16878720, committed:17104896, max:50331648 Current Usage : init:2555904, used:16843904, committed:17104896, max:50331648 |----------------------| committed:16.31Mb +---------------------------------------------------------------------+ |//////////////////////| | max:48Mb +---------------------------------------------------------------------+ |----------------------| used:16.06Mb Pool: Par Eden Space (Heap memory) Peak Usage : init:209715200, used:209715200, committed:209715200, max:209715200 Current Usage : init:209715200, used:71397896, committed:209715200, max:209715200 |---------------------------------------------------------------------| committed:200Mb +---------------------------------------------------------------------+ |/////////////////////// | max:200Mb +---------------------------------------------------------------------+ |----------------------| used:68.09Mb Pool: Par Survivor Space (Heap memory) Peak Usage : init:209715200, used:198330768, committed:209715200, max:209715200 Current Usage : init:209715200, used:40336592, committed:209715200, max:209715200 |---------------------------------------------------------------------| committed:200Mb +---------------------------------------------------------------------+ |///////////// | max:200Mb +---------------------------------------------------------------------+ |------------| used:38.47Mb Pool: CMS Old Gen (Heap memory) Peak Usage : init:10380902400, used:7663071136, committed:10380902400, max:10380902400 Current Usage : init:10380902400, used:7663071136, committed:10380902400, max:10380902400 |---------------------------------------------------------------------| committed:9.67Gb +---------------------------------------------------------------------+ |/////////////////////////////////////////////////// | max:9.67Gb +---------------------------------------------------------------------+ |--------------------------------------------------| used:7.14Gb Pool: CMS Perm Gen (Non-heap memory) Peak Usage : init:838860800, used:110594064, committed:838860800, max:838860800 Current Usage : init:838860800, used:110594064, committed:838860800, max:838860800 |---------------------------------------------------------------------| committed:800Mb +---------------------------------------------------------------------+ |///////// | max:800Mb +---------------------------------------------------------------------+ |--------| used:105.47Mb
java 内存问题
resin版本3.1 java版本1.5 操作系统版本 centos 4.6 服务器的cpu消耗很低,但内存消耗很快,不到一个小时就吃到交换分区了,把swap分区吃完了,机器就挂掉了。我们配置的时候是Apache和resin结合使用的,apache通过6800端口把jsp传给resin处理。 resin.conf 配置文件里面配置有5个HOST,另外jvm的配置参数是这样的: [code="java"] <jvm-arg>-Xmx2048m</jvm-arg> <jvm-arg>-Xms2048m</jvm-arg> <jvm-arg>-XX:MaxPermSize=128m</jvm-arg> <jvm-arg>-Xmn1200m</jvm-arg> <jvm-arg>-XX:ParallelGCThreads=20</jvm-arg> <jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg> <jvm-arg>-XX:+UseParNewGC</jvm-arg> <jvm-arg>-Xss1m</jvm-arg> <jvm-arg>-Xdebug</jvm-arg> [/code] top结果: top - 16:47:38 up 1 day, 2:23, 1 user, load average: 5.30, 3.81, 1.82 Tasks: 128 total, 2 running, 126 sleeping, 0 stopped, 0 zombie Cpu(s): 1.2% us, 13.3% sy, 0.0% ni, 71.3% id, 14.1% wa, 0.0% hi, 0.1% si Mem: 8161396k total, 8137632k used, 23764k free, 388k buffers Swap: 8385920k total, 2892784k used, 5493136k free, 8320k cached [b]问题补充:[/b] java进程号8536 [code="java"] top - 21:16:07 up 1 day, 6:51, 2 users, load average: 0.16, 0.17, 0.20 Tasks: 128 total, 1 running, 127 sleeping, 0 stopped, 0 zombie Cpu(s): 1.4% us, 0.1% sy, 0.0% ni, 98.5% id, 0.1% wa, 0.0% hi, 0.0% si Mem: 8161396k total, 7809248k used, 352148k free, 14676k buffers Swap: 8385920k total, 516368k used, 7869552k free, 582428k cached PID USER PR NI %CPU TIME+ %MEM VIRT SWAP RES CODE DATA SHR S COMMAND 8536 root 16 0 11 4:35.74 84.5 8920m 2.1g 6.6g 52 8.5g 36m S java [/code] java进程占用内存87.4%,进程号8536 [code="java"] ps aux root 8536 9.2 87.4 9417572 7136552 ? Sl 20:26 4:43 /usr/local/jdk1.5.0_17/bin/java -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djava.system.class.loader=com.caucho.loader [/code] 第二次top: [code="java"] top - 21:20:28 up 1 day, 6:55, 2 users, load average: 0.08, 0.11, 0.16 Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie Cpu(s): 1.2% us, 0.6% sy, 0.0% ni, 97.1% id, 1.1% wa, 0.0% hi, 0.0% si Mem: 8161396k total, 8124104k used, 37292k free, 564k buffers Swap: 8385920k total, 540296k used, 7845624k free, 40192k cached PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND 8536 root 16 0 10 5:08.40 95.8 9.8g 7.5g 28m S java 121 root 16 0 4 35:51.87 0.0 0 0 0 D kswapd0 [/code] 第三次top: [code="java"] top - 21:23:00 up 1 day, 6:58, 2 users, load average: 0.14, 0.16, 0.17 Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie Cpu(s): 1.6% us, 0.2% sy, 0.0% ni, 97.9% id, 0.2% wa, 0.0% hi, 0.0% si Mem: 8161396k total, 8125048k used, 36348k free, 1060k buffers Swap: 8385920k total, 1082024k used, 7303896k free, 38212k cached PID USER PR NI %CPU TIME+ %MEM VIRT SWAP RES CODE DATA SHR S COMMAND 8536 root 16 0 14 5:27.79 97.1 10.5g 2.9g 7.6g 52 10g 28m S java 121 root 15 0 2 35:54.77 0.0 0 0 0 0 0 0 S kswapd0 [/code] 第四次top: [code="java"] Tasks: 131 total, 1 running, 130 sleeping, 0 stopped, 0 zombie Cpu0 : 2.8% us, 0.4% sy, 0.0% ni, 95.7% id, 0.9% wa, 0.0% hi, 0.1% si Cpu1 : 0.6% us, 0.3% sy, 0.0% ni, 98.7% id, 0.4% wa, 0.0% hi, 0.0% si Cpu2 : 0.7% us, 1.2% sy, 0.0% ni, 96.4% id, 1.7% wa, 0.0% hi, 0.0% si Cpu3 : 0.6% us, 0.5% sy, 0.0% ni, 98.3% id, 0.7% wa, 0.0% hi, 0.0% si Cpu4 : 0.5% us, 0.3% sy, 0.0% ni, 98.7% id, 0.4% wa, 0.0% hi, 0.0% si Cpu5 : 0.6% us, 0.3% sy, 0.0% ni, 98.7% id, 0.4% wa, 0.0% hi, 0.0% si Cpu6 : 0.7% us, 0.7% sy, 0.0% ni, 97.7% id, 1.0% wa, 0.0% hi, 0.0% si Cpu7 : 0.5% us, 0.3% sy, 0.0% ni, 98.8% id, 0.4% wa, 0.0% hi, 0.0% si Mem: 8161396k total, 8113456k used, 47940k free, 292k buffers Swap: 8385920k total, 1564668k used, 6821252k free, 32044k cached PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND 8536 root 16 0 9 5:55.63 97.8 11.1g 7.6g 26m S java 121 root 15 0 4 36:12.40 0.0 0 0 0 S kswapd0 [/code] [code="java"] ps aux root 8536 10.0 97.5 11760484 7962748 ? Sl 20:26 5:58 /usr/local/jdk1.5.0_17/bin/java -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djava.system.class.loader=com.caucho.loader [/code] 第五次top(swap已经到2G了): [code="java"] top - 21:29:20 up 1 day, 7:04, 2 users, load average: 5.53, 2.84, 1.23 Tasks: 131 total, 2 running, 129 sleeping, 0 stopped, 0 zombie Cpu(s): 1.0% us, 9.8% sy, 0.0% ni, 68.4% id, 20.8% wa, 0.0% hi, 0.0% si Mem: 8161396k total, 8122488k used, 38908k free, 280k buffers Swap: 8385920k total, 2263088k used, 6122832k free, 29776k cached PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND 121 root 16 0 95 37:43.77 0.0 0 0 0 R kswapd0 32161 root 16 0 19 17:29.02 0.1 1079m 5600 3528 S java 8536 root 16 0 19 6:43.04 98.3 11.9g 7.7g 25m S java [/code] [code="java"] ps aux root 8536 10.7 98.3 12598116 8025284 ? Sl 20:26 6:48 /usr/local/jdk1.5.0_17/bin/java -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djava.system.class.loader=com.caucho.loader [/code] 检测内存分配: [code="java"] vmstat 5 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 593940 38444 824 40576 26 40 32 43 2 16 1 1 98 1 0 0 622980 43740 824 40672 248 5808 248 5864 1198 1493 2 0 97 1 0 0 649200 41756 852 40756 2166 5308 2190 5347 1274 17118 1 0 94 5 0 0 669316 38108 868 40948 13 4030 13 4064 1187 869 1 0 98 1 0 0 673568 47268 888 40564 13 2203 14 2238 1220 867 1 0 98 1 0 0 679384 40572 908 40192 208 2867 211 2918 1243 924 2 0 97 2 1 0 685080 43964 840 38196 32 4185 32 4220 1286 5405 2 0 97 2 0 0 685280 43068 872 38108 150 3086 174 3128 1502 940 1 0 93 6 0 0 683952 46964 776 36468 814 4018 821 4069 1452 989 1 0 92 6 0 3 685628 46612 808 36516 131 5669 134 5706 1360 940 2 0 92 6 0 1 688560 46428 312 34936 462 2614 471 2658 1372 965 2 4 89 5 0 1 690816 42140 340 33948 399 1882 491 1938 1351 1239 2 1 94 4 0 0 713104 44052 308 33548 906 6016 906 6062 1484 954 1 0 90 8 0 1 745548 36852 496 33684 2371 6489 2406 6524 1312 1132 1 0 93 5 0 0 766192 44924 620 33852 1130 4131 1183 4166 1251 1009 2 0 95 3 0 0 802552 42428 652 34012 638 7272 648 7324 1243 5389 2 0 96 2 vmstat 5 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 11 2401820 31692 380 31052 27 42 33 45 3 19 1 1 98 1 1 3 2407864 37516 332 29172 3432 2327 3702 2370 1524 1221 1 14 66 20 1 0 2409332 25364 320 29164 4075 1054 4582 1090 1529 1314 1 11 72 16 1 1 2430024 25236 308 29764 3578 4680 4086 4714 1439 1249 1 12 75 12 4 2 2437212 23764 316 30032 4291 2304 4861 2362 1513 1284 1 16 71 12 7 2 2454028 23764 336 29740 5968 4057 6538 4102 1639 1492 1 40 45 14 0 0 2500428 36868 348 30840 4363 9719 4910 9735 1390 71980 0 39 46 14 [/code] [b]问题补充:[/b] @pJun; 两台机器做集群: 1.dell 2950 高配:64位,8G,CPU 8个 2.dell 2950 标配:32位,4G,CPU 8个 两台机器其它配置都一样,跑的程序也相同,但64位的内存泄露相当严重,大概一个小时就会物理内存全部耗光,swap2G全部耗光,需要重启。 32位 没这种情况,偶尔也会有一次,32位物理内存耗到只剩4 50M的时候,就不会用swap了,而是自动重启java服务进程,然后内存就会恢复到启动时候的状态。 64位机器 resin配置文件里最大线程是400, 64位的机器通过jconsole 观察垃圾回收时正常的:在resin配置文件里分配2G内存给jvm,当内存到1.5G的时候,会自动回收) 跟系统环境变量有没有关系,我感觉跟分配的线程有问题?
怎样最大限度的发挥服务器的性能?
计算机: <br />IBM <br />BC_8853 <br />Intel(R) Xeon(R) CPU <br />  5130 @ 2.00GHz <br />2.00 GHz <br />3.25 GB 的内存 <br /> <br />CPU是四核的 <br /> <br />我写的代码主要是操作数据库和导出成excel,测试发现导成excel时(用jxl导的)花费的时间很长,7k条数据花了6分钟(包括导出数据和打成zip包),目前eclipse.ini的配置为: <br />-clean <br />-showsplash <br />com.genuitec.myeclipse.product.ide <br />--launcher.XXMaxPermSize <br />256m <br />-vmargs <br />-Xms256m <br />-Xmx512m <br />-Duser.language=en <br />-XX:PermSize=128M <br />-XX:MaxPermSize=1024M <br /> <br />我会继续修改代码提高效率,但还有个问题想请教大家,我的代码是一个web工程的一部分,将来会被一起放到Tomcat容器中,要怎样配置Tomcat容器才能最大限度的发挥这台服务器的性能。谢谢!<br /><strong>问题补充</strong><br /><div class="quote_title">yyjn12 写道</div><div class="quote_div">为什么是在eclipse里弄? <br />另外 maxpermsize好象不需要1024M那么大吧,不过这个应该没什么影响。</div> <br />我的代码目前还没有放到Tomcat容器中,我在自己的电脑上用JUnit测试,所有目前改的是eclipse.ini<br /><strong>问题补充:</strong><br /><div class="quote_title">引用</div><div class="quote_div"> <br />我想说的是, LZ误解eclipse的内存配置了, 你在eclipse里运行, 不管是junit还是Main程序, 都启用的是独立的jvm. JUnit可以在运行的配置里设jvm 参数。 <br />sdh5724 (中级程序员) 2009-01-07 采纳为答案 <br /></div> <br />你把我弄糊涂了,那部署普通java工程时都是采用命令行带设置内存参数部署的?eclipse.ini中也能设置JVM参数,那这些参数是在什么情况下起作用的? <br />谢谢!
用struts1.2+tomcat5.5+mysql5.1+c3p0连接池开发 出现死机现象
用struts1.2+tomcat5.5+mysql5.1+c3p0连接池开发 出现死机现象 各位朋友,向大家请教一下,我们用struts1.2+tomcat5.5+mysql5.1+c3p0连接池开发一个web应用网站。 现在我们遇到的问题是:现有已经开发的几个模块,部署到linux服务器上,服务器使用的tomcat5.5,运行一段时间就会出现死机的现象,不能登陆及查询(即:数据库操作无响应),刚开始我们初步判断是连接池的原因(因为我们连接池用的单例模式,之前由于考虑不全,出现了两个连接池对象),但是后面我们已经修改了连接池,只有一个连接池对象,再发布测试还是出现这个现象。我们还是不能确定问题出现在哪里, 只是怀疑连接池的问题,我们又做了修改(将c3p0 连接池修改为struts1.2的数据源配置),再次发布到服务器上测试,还是出现相同的问题。 现在我们能推断的问题原因有以下几种情况: 1.连接池问题 (不能确定,应为我们修改了两次连接池,还是出现相同的问题) 2.tomcat 死掉 (不能确定,网上查找了资料,已经修改了tomcat启动参数 设置jvm 的虚拟内存: set JAVA_OPTS=-Xms512m -Xmx512m) 3.mysql 数据库死掉 (不能确定,如果是数据库服务器死掉,但是通过mysql的客户端可以正常操作查询等一些操作) [b]问题补充:[/b] 补充1:Connection,statement都是在应该关闭的地方关闭了的 补充2:没有使用hibernate 补充3:编译没有报错 [b]问题补充:[/b] 补充:程序能够运行一段时间,大概20分钟左右,然后才数据库操作无响应 [b]问题补充:[/b] 我们程序里有两个线程、每隔15分钟扫描一次数据库中表,同时还有用户不停的访问!!麻烦你能否给一个连接池的配置信息!谢谢!!
阿里云 Java环境 每小时在根目录下生成 hs_err_pid*.log ,求教!
OS环境:阿里云 1核 1G内存; 安装软件:安装了 JDK 1.7 TOMCAT 7.X; 部署内容:部署了 java web 工程,工程正常运行; 问题:每小时在跟目录下生成一个 hs_err_pid<pid>.log 已经采取的措施: 1、配置服务器Swap 2、配置tomcat jvm 内存 (bin/catalina.sh) 未果,求牛人指点。 文件内容如下: # # There is insufficient memory for the Java Runtime Environment to continue. # pthread_getattr_np # Possible reasons: # The system is out of physical RAM or swap space # In 32 bit mode, the process size limit was hit # Possible solutions: # Reduce memory load on the system # Increase physical memory or swap space # Check if swap backing store is full # Use 64 bit Java on a 64 bit OS # Decrease Java heap size (-Xmx/-Xms) # Decrease number of Java threads # Decrease Java thread stack sizes (-Xss) # Set larger code cache with -XX:ReservedCodeCacheSize= # This output file may be truncated or incomplete. # # Out of Memory Error (os_linux_x86.cpp:718), pid=29229, tid=140505843455744 # # JRE version: Java(TM) SE Runtime Environment (7.0_67-b01) (build 1.7.0_67-b01) # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode linux-amd64 compressed oops) # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # --------------- T H R E A D --------------- Current thread (0x00007fca0c08a800): JavaThread "Service Thread" daemon [_thread_new, id=29237, stack(0x0000000000000000,0x0000000000000000)] Stack: [0x0000000000000000,0x0000000000000000], sp=0x00007fca10e34880, free space=137212737746k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x99eb8a] V [libjvm.so+0x49721b] V [libjvm.so+0x8237ca] V [libjvm.so+0x823815] V [libjvm.so+0x952614] V [libjvm.so+0x958dd4] V [libjvm.so+0x81f988] --------------- P R O C E S S --------------- Java Threads: ( => current thread ) =>0x00007fca0c08a800 JavaThread "Service Thread" daemon [_thread_new, id=29237, stack(0x0000000000000000,0x0000000000000000)] 0x00007fca0c088000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=29236, stack(0x00007fca10e36000,0x00007fca10f37000)] 0x00007fca0c085800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=29235, stack(0x00007fca10f37000,0x00007fca11038000)] 0x00007fca0c084000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=29234, stack(0x00007fca11038000,0x00007fca11139000)] 0x00007fca0c064800 JavaThread "Finalizer" daemon [_thread_blocked, id=29233, stack(0x00007fca11139000,0x00007fca1123a000)] 0x00007fca0c062800 JavaThread "Reference Handler" daemon [_thread_blocked, id=29232, stack(0x00007fca1123a000,0x00007fca1133b000)] 0x00007fca0c008800 JavaThread "main" [_thread_in_vm, id=29230, stack(0x00007fca12195000,0x00007fca12296000)] Other Threads: 0x00007fca0c05e000 VMThread [stack: 0x00007fca1133b000,0x00007fca1143c000] [id=29231] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) [0x00007fca0c006bc0] PeriodicTask_lock - owner thread: 0x00007fca0c008800 Heap def new generation total 4800K, used 343K [0x00000000eb400000, 0x00000000eb930000, 0x00000000f0750000) eden space 4288K, 8% used [0x00000000eb400000, 0x00000000eb455e40, 0x00000000eb830000) from space 512K, 0% used [0x00000000eb830000, 0x00000000eb830000, 0x00000000eb8b0000) to space 512K, 0% used [0x00000000eb8b0000, 0x00000000eb8b0000, 0x00000000eb930000) tenured generation total 10624K, used 0K [0x00000000f0750000, 0x00000000f11b0000, 0x00000000fae00000) the space 10624K, 0% used [0x00000000f0750000, 0x00000000f0750000, 0x00000000f0750200, 0x00000000f11b0000) compacting perm gen total 21248K, used 2132K [0x00000000fae00000, 0x00000000fc2c0000, 0x0000000100000000) the space 21248K, 10% used [0x00000000fae00000, 0x00000000fb015148, 0x00000000fb015200, 0x00000000fc2c0000) No shared spaces configured. Card table byte_map: [0x00007fca117bd000,0x00007fca11864000] byte_map_base: 0x00007fca11063000 Polling page: 0x00007fca1332b000 Code Cache [0x00007fca09000000, 0x00007fca09270000, 0x00007fca0c000000) total_blobs=156 nmethods=0 adapters=126 free_code_cache=48779Kb largest_free_block=49950080 Compilation events (0 events): No events GC Heap History (0 events): No events Deoptimization events (0 events): No events Internal exceptions (1 events): Event: 0.027 Thread 0x00007fca0c008800 Threw 0x00000000eb410380 at /HUDSON/workspace/7u-2-build-linux-amd64/jdk7u67/1368/hotspot/src/share/vm/prims/jni.cpp:3991 Events (10 events): Event: 0.058 loading class 0x00007fca11701880 Event: 0.058 loading class 0x00007fca11701880 done Event: 0.058 loading class 0x00007fca1170df80 Event: 0.058 loading class 0x00007fca1170df80 done Event: 0.058 loading class 0x00007fca116c8ee0 Event: 0.058 loading class 0x00007fca116c8ee0 done Event: 0.058 Thread 0x00007fca0c084000 Thread added: 0x00007fca0c084000 Event: 0.058 Thread 0x00007fca0c085800 Thread added: 0x00007fca0c085800 Event: 0.059 Thread 0x00007fca0c088000 Thread added: 0x00007fca0c088000 Event: 0.059 Thread 0x00007fca0c08a800 Thread added: 0x00007fca0c08a800 .....
关于ActiveMQ 消息吞吐量的如何优化?
最近公司想对公司应用结构进行优化,对现在架构中很多耗费资源严重且耗时比较长的应用间大数据量同步通信的接口进行优化,讨论决定引入消息中间件,网上浏览了一圈最后锁定ActiveMQ,在网上看到很多关于ActiveMQ的测试分析文档,大部分测试结果 AMQ的每秒吞吐量大概都在2000以上甚至更多,但是我在公司服务器上面测试的数据并不是很理想,有点让人头疼,不能够达到峰值,甚至在多线程下速度极速下降,效率方面有点不能让人接受,想看看有没有更好的优化配置。 下面是我的Amq的配置: [size=large;] 单机服务器:CPU :8个 内存:16G 系统:Linux Red Hat Amq版本:5.5.1 [/size] ${activemq_base}/conf/activemq.xml :配置 [code="java"][color=blue]<broker xmlns="http://activemq.apache.org/schema/core" brokerName="pure_master" destroyApplicationContextOnStop="true" persistent="true" useJmx="true"> <destinationPolicy> <policyMap> <policyEntries> <policyEntry topic=">" producerFlowControl="false" memoryLimit="16mb" optimizedDispatch="true"> <dispatchPolicy> <strictOrderDispatchPolicy /> </dispatchPolicy> <subscriptionRecoveryPolicy> <lastImageSubscriptionRecoveryPolicy /> </subscriptionRecoveryPolicy> </policyEntry> <policyEntry queue=">" producerFlowControl="false" memoryLimit="16mb" optimizedDispatch="true"> </policyEntry> </policyEntries> </policyMap> </destinationPolicy> <managementContext> <managementContext createConnector="false"/> </managementContext> <persistenceAdapter> <kahaDB directory="/opt/activemq_data/kahadb_master" indexWriteBatchSize="1000" journalMaxFileLength="32mb" enableIndexWriteAsync="true" enableJournalDiskSyncs="false"/> </persistenceAdapter> <systemUsage> <systemUsage sendFailIfNoSpaceAfterTimeout="3000"> <memoryUsage> <memoryUsage limit="128 mb"/> </memoryUsage> <storeUsage> <storeUsage limit="15 gb" name="dbstore"/> </storeUsage> <tempUsage> <tempUsage limit="128 mb"/> </tempUsage> </systemUsage> </systemUsage> <transportConnectors> <transportConnector name="openwire" uri="tcp://192.168.2.215:61616"/> </transportConnectors> </broker> <import resource="jetty.xml"/>[/color][/code] JVM设置: [code="java"][color=black] /opt/java/jdk1.6.0_29/bin/java -server -Xmx2g -Xms2g -XX:SurvivorRatio=8 -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:ErrorFile=/opt/mqdata/logfile/dump.log -XX:+UseParNewGC -XX:MaxTenuringThreshold=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.2.215 -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Djava.util.logging.config.file=logging.properties -Dcom.sun.management.jmxremote -Dactivemq.classpath=/opt/work/activemq/conf; -Dactivemq.home=/opt/work/activemq -Dactivemq.base=/opt/work/activemq -jar /opt/work/activemq/bin/run.jar start[/color][/code] 单机模式下测试流程: 只对queue进行测试, 1、broker和producer、consumer 都是分离开得 ,一台服务器专门做broker的主机服务器。 2、使用activemq在example下提供的例子在另一台服务器(8核,16G)进行消息生产 3、1个producer 没有consumer 的情况下,消息大小:1K,非持久化消息,每秒大概在2500左右,1000W以后大概每秒1500/s左右 4、1个peoducer 没有consumer,消息大小:1K,持久化消息(kaha),每秒 1200-1500左右,内存到1G左右时,缩减到800-1000左右/s 5、1个producer,1个consumer,消息大小:1K,持久化消息(kaha),每秒1200左右,持续稳定在这个状况 6、5个producer,5个consumer,消息大小:1K,持久化消息(kaha)、每秒在1000左右/s 持续 7、p:1,c:1, 消息大小:1024K,持久化消息,每秒在700-900/s 8、p:5,c:5,消息大小:1024,持久化消息,每秒大概在700左右/s [size=small;]二、:Pure Master-Slave 模式[/size] 配置: 硬件配置:主从都一样,8 CPU,16G内存 Master 配置与单机模式一样 Slave 只是在<broker> 中增加了masterConnectorURI="tcp://192.168.2.215:61616" shutdownOnMasterFailure="false" ActiveMQ 内存分配为2G 只对queue进行测试, 1、1个producer 没有consumer 的情况下,消息大小:1K,持久化消息,每秒大概在1000左右,内存过半(1G)时,大概在500-700左右 2、1个producer,1个consumer,消息大小:1K,持久化消息(kaha),每秒800-1000左右,持续稳定在这个状况 3、5个producer,5个consumer,消息大小:1K,持久化消息(kaha)、每秒在500-800左右/s 持续 4、p:1,c:1, 消息大小:1024K,持久化消息,每秒在700左右/s 5、p:5,c:5,消息大小:1024,持久化消息,每秒大概在500左右/s 这是我现在的测试结果. 但是这个结果让我不是很满意,想问问大家在配置ActiveMQ 的时候 我是否有配置有耗时的地方,还可以在那些方面进行优化。 公司的方案倾向于Pure Master-Slave模式但是这种模式有 双向存储的性能消耗,也想问问大家在应用方面那种模式更好一些,初步预算在生产环境为两个服务器。 希望大家能帮忙解决下问题 ,谢谢啊
怎么能观察出JVM的Old区中存储的都是那些对象
操作系统:Solaris10 JDK:SUN JDK1.5.0_17 [b]问题补充:[/b] jmap这个命令我用了,但我发现只是显示出了实例的数量。看不出来哪些对象是在Old区的。你说用Heap工具分析,是什么Heap工具呢?我用了Optimizeit,也是只能看出实例的数量和引用关系,看不出哪些对象是在Old区的。 [b]问题补充:[/b] 我现在的GC策略是这样的,堆最大,最小都是1024m,young区是512m,对象在from和to之间拷贝5次然后扔到old区。回收算法用的是cms。我们的应用对吞吐量的要求比较高,绝大多数都是短生命周期的对象。我在windows下用optimizeit检查了,不存在内存泄漏,但发现在并发量比较大的时候,有几个对象的实例数量是一直在增长的。但当客户端的程序停止的时候,这些对象又是可以被回收的。我们的程序是运行在solaris上的,由于我没下载到optimizeit的solaris安装文件,或者是类似工具的solaris安装文件,因此不确定,olc区中的那些对象是否就是那几个不断增长的对象。我用jvmstat看了,old区涨的很快。而且程序运行大概20分钟左右就core dump了。有的时候会直接把服务器整死。因此我想看看有没有什么手段来看看old区的对象存储的都是什么来帮我肯定一下,就是那几个对象再搞鬼。 [b]问题补充:[/b] 其实这个问题,在昨天临下班之前的10几分钟突然有了进展。终于排查出,我们的程序是没有内存泄漏的。而是由于传输层的拥挤造成的。设置了socket的readReceiveBuffer和sendBuffer之后这个问题得到了缓解。但是为什么会因为传输层的拥挤导致我们old区的对象很多,这点需要再好好研究一下mina框架。 [b]问题补充:[/b] [quote]根据你的说法, 我觉得你的,配置有问题的, 为什么设计-Xmn512m, 这个是很关键的, 如果你要求很低的world stop. 那么把-Xmn设置到128 或者256m, core dump 的原因可能是因为你CMS机制不起作用, 导致并行收集过多产生的。 另外,也跟你的JAVA的版本有关系。 CMS最好使用JAVA6的版本, 在JAVA5上, 这个技术并不是非常成熟。如果是JAVA5, CMS的启动策略是有BUG的, 这个你可以参考我的BLOG : http://sdh5724.iteye.com/admin/blogs/283977 [/quote] young区默认的大小是堆的1/4,但是对于吞吐量优先的程序,可以设置为堆的1/2。因为对象的生命周期短,应该尽可能的让对象在young区就被回收掉,免得被拷贝到old区,再进行回收时,暂停时间会相对较长。网上有些资料显示了,对于吞吐量优先的程序,应该设置一个较大的young区的说法,Sun的网站上也有,将堆设置为3G,young区设置为2G的例子。你说的CMS最好在JAVA6下用,这个我真的不知道。听说JAVA6的GC机制要比JAVA5好。这个我回去试试。 [quote]readReceiveBuffer和sendBuffer 是操作系统参数, 如果你的OS内存很紧张, 也可能导致系统资源不够。 这个参数应该调整成你业务需要的发送接收的大小, 不可以盲目扩大, 每个TCP连接都会占用这个BUFF的大小。 我建议你一般设置成8K。[/quote] 你说的这个我很关系,对这两个参数我也不太了解,但的确是缓解了问题,而且很明显。目前我们只使用了一个TCP连接。对于你说的“这个参数应该调整成你业务需要的发送接收的大小”,我不太明白是什么意思。主要是我不清楚我们需要的大小是多少啊,呵呵。你说的8K,这个是默认配置。但我们使用这个配置时,程序最多只能跑20分钟,程序就死掉了。这涉及到tcp的传输,因为跟我们对接的另一端,他们是C语言写的,目前他们没有设置缓冲区大小,应该用的也是默认的,但C程序我不太了解,不知道是多少。我把这个缓冲区设置为Integer的最大值了,好像是2G(我也觉得有点儿夸张),程序大概跑了四十分钟,服务器宕机了。 [quote]我觉得, 你是不是因为TCP的连接断开后, 没有释放TCP连接? socket.close(). 会导致大量的time_wait的连接, 你要仔细看下。 OS会在比较长的时间回收[/quote] 我们现在就一个TCP链接,出现问题时,链接没断过。我们应该是没有内存泄漏的,我用Optimizeit检查了好多次了。 很高兴与你讨论这个问题,我感觉现在问题出现在TCP的缓冲区上,应该让C那边也设置一个较大的缓冲区,然后再看看问题能不能得到解决。 [b]问题补充:[/b] 经过几天的测试,总结如下: 1.机器宕机居然是机器的问题,那个机器,不管上面运行的是我们的应用程序还是模拟器,都会宕机。换了其他的几台服务器,都没出现宕机的问题。 2.buffer的设置:我们一个消息的长度是20个字节。每秒钟2000条消息,就是40000个字节,因次buffer设置为40000。但最后还是没有设置这个值采用默认的。因为问题可能不在这里。 3.目前的问题,使用mina的client接收消息时,每秒钟2000条,大概运行一段时间之后,就会mina就会接收到一个很大的包(100K以上)。这导致我们应用层解析这个消息的时候调用层次过多,抛出stackOverFlow的异常,并且主动把连接关闭了。其实,我们可以修改一下我们的代码,避免抛出这个异常。但这不是问题的根源,因为mina传了一个这么大的数据包给应用层就是不正常的。于是我看了一下mina的代码,在read的时候,会根据接收到的消息的长度,来调整allocate的长度。这个上限是receiveByteBuffer的2倍。我尝试修改了mina的代码,让他每次固定allocate 1024个字节。但是问题依然存在,目前没找到解决方法。为了规避这个问题,只是让服务端不给我们发送这个应答,这在业务上是允许的。但没找到问题的根源总是感觉心里堵的荒,打算试试grizzly。
如何设置tomcat6进行FULL GC时间
在进行压力测试时,时间久了发现内存中的OLD区一直增加,如果增加到100%,则服务器响应速度会变慢。所以需要由JVM的FULL GC来清理,但是,tomcat6默认配置中,执行一次FULL GC的时间是1小时,如何自定义设置FULL GC的时间呢? 在下面的图中,可以看到,FULL GC执行从1次变为2后,OLD区被清理了(78.03-70.26)%=7.77%。
【Solr - Glassfish】求关于 solr 使用的 2 大问题!
问题(一)------------------------------------------------------------------------------ 在使用Solr DataImportHandler直接索引数据库数据时遇到点问题,我先说一下我的情况: 1、Solr版本1.3 2、数据库:SQL Server2005 3、tomcat版本:6.0.14 目标是:采用solr对数据库400万条数据进行索引; 由于有的表数据量达到百万条,所以我采用 solr 的 DataImportHandler 进行操作时,tomcat总是内存益处,错误提示如下: Error reading request, ignored java.lang.OutOfMemoryError: Java heap space 这个我修改过JVM的内存,还是不行,可能是数据记录太大了。 请问这种情况下,有知道怎么解决么?多谢多谢 问题(2)------------------------------------------------------------------------------ Solr服务器最后要放到Linux服务器上,而web方面则采用Glassfish,但是在配置solr home时,老是出错,说找不到solr-config.xml文件,我知道tomcat配置solr home有3中方式,目的好像是在启动tomcat时同时根据solr home启动solr,但是在glassfish中就不知道怎么配置了,求知道的人给指个道,多谢多谢
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。 但是,最近好多人问我学习路线,而且很多大一大二的,说自己很迷茫,看到我那篇 普普通通,我的三年大学 之后很受激励,觉得自己也能行,(是的,别太浪,你一定能行)希望我能给他个学习路线,说
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
基础拾遗:除了&和&&的区别,你还要知道位运算的这5个运算符
&和&&都可作逻辑与的运算符,表示逻辑与(and),&是位运算符,你还需要知道这5个位运算符,基础很重要,云运算其实很骚!
MySQL数据库总结
一、数据库简介 数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。 典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。 关系型数据库:使用关系模型把数据组织到数据表(table)中。现实世界可以用数据来描述。 主流的关系型数据库产品:Oracle(Oracle)、DB2(IBM)、SQL Server(MS)、MySQL(Oracle)。 数据表:数...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片...
张小龙-年薪近3亿的微信之父,他是如何做到的?
张小龙生于湖南邵东魏家桥镇, 家庭主要特点:穷。 不仅自己穷,亲戚也都很穷,可以说穷以类聚。爷爷做过铜匠,总的来说,标准的劳动阶级出身。 家有兄弟两人, 一个小龙,一个小虎。 小虎好动,与邻里打成一片, 小龙好静,喜好读书。 “文静的像个妹子。”张小龙的表哥如是说。 穷文富武,做个读书郎是个不错的选择。 87年至94年, 华中科技大学本硕连读。 本科就读电信系, 不喜欢上课...
阿里靠什么武功秘籍渡过“双十一“的天量冲击
双十一大概会产生多大的数据量呢,可能大家没概念,举个例子央视拍了这么多年电视新闻节目,几十年下来他存了大概80P的数据。而今年双11一天,阿里要处理970P的数据,做为一个IT人,笔者认为今年”双十一“阿里最大的技术看点有有以下两个: 阿里的数据库,也就是刚刚拿下TPC冠军的OcceanBase,处理峰值也达到了骇人听闻的6100万次/秒, 阿里核心系统百分百上云了。 如果把信息系统比做一个武...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给袈...
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问