项目日记9.18

本文详细解析了在使用Spring MVC与MyBatis框架时出现的NestedServletException错误,该错误源于IncompleteElementException,具体表现为无法找到resultMap。文章深入探讨了如何正确配置一对多表的映射关系,以避免此类异常发生。
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.ArrayList
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.kaoyan.model.Register

mapping里未完成映射,因为涉及到一对多表,就偷懒没有完成各映射,才报错,完成映射就OK

### CSAPP 9.18 题解及内容解释 CSAPP(Computer Systems: A Programmer's Perspective)是一本深入讲解计算机系统原理的经典教材。第9章通常涉及虚拟内存和存储管理的相关概念[^1]。以下是关于第9章习题18的内容解析。 #### 习题背景 该题目主要围绕虚拟内存的工作机制展开,包括页表、物理地址空间以及内存映射等关键概念。具体问题可能要求分析或设计一个与页表相关的算法,或者计算特定情况下的内存访问效率[^2]。 #### 解答思路 根据题目描述,解答可以分为以下几个方面: 1. **页表结构** 在虚拟内存系统中,页表用于将虚拟地址映射到物理地址。如果题目涉及到多级页表的设计,需要明确各级页表的大小、入口数以及如何通过索引找到对应的物理页号[^3]。 2. **TLB命中率** 如果题目提到TLB(Translation Lookaside Buffer),则需要计算TLB命中率对内存访问时间的影响。假设每次内存访问的成本为 \(T_m\),TLB命中率为 \(H\),则平均访问时间为: ```python avg_time = H * T_m + (1 - H) * (T_m + T_page_table) ``` 其中,\(T_page_table\) 表示访问页表的时间[^4]。 3. **页面置换策略** 如果题目涉及页面置换算法(如FIFO、LRU或OPT),需要分析不同策略对缺页中断率的影响。例如,OPT算法总是选择未来最晚使用的页面进行置换,从而实现最低的缺页率[^5]。 #### 示例代码 以下是一个简单的Python模拟程序,用于计算TLB命中率对内存访问时间的影响: ```python def calculate_memory_access_time(tlb_hit_rate, memory_access_time, page_table_access_time): return tlb_hit_rate * memory_access_time + (1 - tlb_hit_rate) * (memory_access_time + page_table_access_time) # 示例参数 tlb_hit_rate = 0.95 # TLB命中率 memory_access_time = 100 # 内存访问时间(纳秒) page_table_access_time = 200 # 页表访问时间(纳秒) # 计算平均访问时间 avg_time = calculate_memory_access_time(tlb_hit_rate, memory_access_time, page_table_access_time) print(f"Average memory access time: {avg_time} ns") ``` #### 总结 通过上述分析可以看出,CSAPP 9.18题的核心在于理解虚拟内存的基本原理及其对系统性能的影响。无论是页表设计还是TLB命中率计算,都需要结合具体场景进行深入探讨[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值