MVC 模型 model
贫血模型与充血模型
贫血模型 anemic domain model ,意味着模型实体在设计和实现上,不必包含或者包含很少的逻辑。通常这种情况下,逻辑是被挪了出去,由其它单独的一层代码(比如这层代码是 “service” )来完成。
严格来说,贫血模型不是面向对象的,因为对象需要数据和逻辑的结合,这也是贫血模型的反对者的重要观点之一。
充血模型 rich domain model ,在充血模型的设计中,领域模型实体就是有血有肉的了,既包含数据,也包含逻辑,具备了更高程度的完备性和自洽性。
javac BookServlet.java -classpath ${CATALINA_HOME}/lib/servlet-api.jar
D:\Developers\Tomcat\apache-tomcat-8.5.39
javac BookServlet.java -classpath D:\Developers\Tomcat\apache-tomcat-8.5.39/lib/servlet-api.jar
javac BookServlet.java -classpath $env:CATALINA_HOME/lib/servlet-api.jar
31 性能优化
现在,我来提一个问题吧:
对于下面这些资源角度定义的性能指标,你能说说在 Linux 下,该用怎样的工具或命令来查看吗?
- CPU 使用率、负载;
- 可用内存、换页;
- 磁盘 I/O;
- 网络 I/O;
- 应用进程、线程。
Top 命令:
链接Top guide-linux-top-command
top - 14:30:01 up 77 days, 23:21, 2 users, load average: 0.02, 0.04, 0.00
Tasks: 866 total, 1 running, 865 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8157836k total, 7953796k used, 204040k free, 290024k buffers
Swap: 8388604k total, 1290672k used, 7097932k free, 4550396k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5906 root 20 0 15708 1988 944 S 1.0 0.0 0:02.39 top
5805 root 20 0 102m 5080 3848 S 0.7 0.1 0:01.64 sshd
5937 root 20 0 15664 1900 948 R 0.7 0.0 0:02.27 top
3824 root 16 -4 29764 732 612 S 0.3 0.0 1:38.08 auditd
1 root 20 0 19364 1188 960 S 0.0 0.0 0:02.88 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.20 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:02.01 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0
6 root RT 0 0 0 0 S 0.0 0.0 0:06.64 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.21 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1
9 root 20 0 0 0 0 S 0.0 0.0 0:01.36 ksoftirqd/1
10 root RT 0 0 0 0 S 0.0 0.0 0:06.18 watchdog/1
11 root RT 0 0 0 0 S 0.0 0.0 0:00.06 migration/2
12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/2
13 root 20 0 0 0 0 S 0.0 0.0 0:00.83 ksoftirqd/2
14 root RT 0 0 0 0 S 0.0 0.0 0:06.23 watchdog/2
15 root RT 0 0 0 0 S 0.0 0.0 0:00.03 migration/3