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

  1. javac BookServlet.java -classpath $env:CATALINA_HOME/lib/servlet-api.jar

31 性能优化

现在,我来提一个问题吧:
对于下面这些资源角度定义的性能指标,你能说说在 Linux 下,该用怎样的工具或命令来查看吗?

  1. CPU 使用率、负载;
  2. 可用内存、换页;
  3. 磁盘 I/O;
  4. 网络 I/O;
  5. 应用进程、线程。

Top 命令:
链接Top guide-linux-top-command

  1. top - 14:30:01 up 77 days, 23:21, 2 users, load average: 0.02, 0.04, 0.00
  2. Tasks: 866 total, 1 running, 865 sleeping, 0 stopped, 0 zombie
  3. 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
  4. Mem: 8157836k total, 7953796k used, 204040k free, 290024k buffers
  5. Swap: 8388604k total, 1290672k used, 7097932k free, 4550396k cached
  6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  7. 5906 root 20 0 15708 1988 944 S 1.0 0.0 0:02.39 top
  8. 5805 root 20 0 102m 5080 3848 S 0.7 0.1 0:01.64 sshd
  9. 5937 root 20 0 15664 1900 948 R 0.7 0.0 0:02.27 top
  10. 3824 root 16 -4 29764 732 612 S 0.3 0.0 1:38.08 auditd
  11. 1 root 20 0 19364 1188 960 S 0.0 0.0 0:02.88 init
  12. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
  13. 3 root RT 0 0 0 0 S 0.0 0.0 0:00.20 migration/0
  14. 4 root 20 0 0 0 0 S 0.0 0.0 0:02.01 ksoftirqd/0
  15. 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0
  16. 6 root RT 0 0 0 0 S 0.0 0.0 0:06.64 watchdog/0
  17. 7 root RT 0 0 0 0 S 0.0 0.0 0:00.21 migration/1
  18. 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1
  19. 9 root 20 0 0 0 0 S 0.0 0.0 0:01.36 ksoftirqd/1
  20. 10 root RT 0 0 0 0 S 0.0 0.0 0:06.18 watchdog/1
  21. 11 root RT 0 0 0 0 S 0.0 0.0 0:00.06 migration/2
  22. 12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/2
  23. 13 root 20 0 0 0 0 S 0.0 0.0 0:00.83 ksoftirqd/2
  24. 14 root RT 0 0 0 0 S 0.0 0.0 0:06.23 watchdog/2
  25. 15 root RT 0 0 0 0 S 0.0 0.0 0:00.03 migration/3