Java 应用与开发 - Java 内存模型与分配机制大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 应用与开发 Java 内存模型与分配机制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 垃圾回收机制 JVM 的垃圾回收机制(GC)决定对象是否是垃圾对象,并进行 回收。 O 垃圾回收机制的特点 ▶ 垃圾内存并不是用完了马上就被释放,所以会产生内存释放 不及时的现象,从而降低内存的使用效率。而当程序庞大的 时候,这种现象更为明显。 ▶0 码力 | 44 页 | 818.30 KB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家 目 录 问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 问题引入 第一部分 为什么能有极致的性能? 01. 如何优化? 解决了哪些技术难题? 主动式内存缓存 如何优化? 极致的性能 除了网络IO,与Redis有什么区别? 复杂的查询怎么办? 02. 传统的Cache很难 • 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新 被动方式 缓存过期 定期同步 主动方式 监听数据变化 数据加载,更新 热数据的交换 冷 热 新 系 统 历 史 数 据 冷数据、数据量多 缓存成本大、命中低、收益小 热 数 据 当前系统中的热点数据 命中率高 系 统 新 增 数 据 近期新增数据,较大概率命中 存储空间 缓存性能 冷热可交换,引擎可扩展 06. 冷热数据交换,通过栈式缓存结构,实现多级缓存策略 语言的局限性 07. 基于golang语言,内存对象超过百万量级后出现的GC耗时问题0 码力 | 48 页 | 6.06 MB | 1 年前3
2.2 龚浩华(月牙寂)p2p缓存系统 基于Golang的Aop设计模式LOGO p2p缓存系统 基于Golang的Aop设计模式 龚浩华 QQ 29185807 月牙寂 背景 v Web缓存(类似CDN技术) § 网页、图片 § 普通下载 § 普通视频 v P2P缓存 § 下载(bt等) § 视频(qvod、百度影音等) 背景 v P2P缓存好处 § 一次获取,多次利用 § 减少局域网出网流量 减少局域网出网流量 § 提升用户体验 背景 v P2P缓存服务器(基于c++开发) § 代码量大 § 协议数量多 § 耦合性高 § 潜在bug多 重构 or 重新推倒? 背景 现实世界是怎么样的 分布式、并发 职能化、松散化 自组织、智能化 程序框架是否也可以这样? OOP v C++对象代码运行 C++对象代码运行 § 有属性(成员变量)、有行为(成员函数) 没有可以独立执行的机制 § 有属性(成员变量)、有行为(成员函数) 还有独立执行的活动(有自己独立的线程) § 有属性(成员变量)、有行为(成员函数) 借助其他线程运行 AOP AOP (agent-oriented programming) Agent:智能体、职能代理。源于分布式人0 码力 | 29 页 | 338.20 KB | 1 年前3
美团点评2018技术年货在早期,运营配置上线流程需要研发同学参与。产品提出运营配置需求,研发同学通过修改代码对配置进 行变更,然后通过代码上线进行发布。整体流程如下: 这种上线机制存在以下几个问题: 1. 配置上线过多依赖于代码的发布。 2. 整体上线过程无审核机制,无法对配置资源进行合规审核。 3. 配置容易出错,上线前不能提前预览上线后的效果,只有“事后”(上线后)才能验证效果。 APPKIT打造稳定、灵活、高效的运营配置平台 运营流程化 设计一套整体的流程管理机制,解决运营的投放、审核、发布和回滚的问题。通过流程化的机制,我们实 现了“事前”、“事中”、“事后”的三级管理。 首先,在运营配置上线前,通过测试用户的预览功能,可以预览上线后的实时效果。同时,通过穿越功能 可查看将来时段显示的效果。防止出现上线后链接出错、视觉效果达不到预期等问题。 其次,在流程阶段,引入审核机制,通过视觉和内容两方面的审核,保证投放数据的准确性。 最后,在运营配置上线后,如果发现问题,可以通过快速回滚,最大限度地实现“止损”。 接口SDK化 接口SDK化 对于运营数据,无论是通过数据库的落地方案、还是通过分布式缓存的方案,都无法彻底解决服务中心化 和服务抖动的问题。通过接入的SDK化,可以做到数据的本地缓存更新机制,解除对中心化服务的依赖, 大大提升服务的稳定性和性能。同时整个APPKIT服务变成可水平扩展,在扩展过程中也不会影响中心服 务的稳定性。 四、APPKIT架构0 码力 | 229 页 | 61.61 MB | 1 年前3
Nacos架构&原理
Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 80 Nacos 健康检查机制 89 Nacos 配置管理模块 97 配置⼀致性模型 97 Nacos ⾼可⽤设计 100 Nacos 高可用设计 100 Nacos 鉴权插件 103 Nacos 账号权限体系 103 Nacos 认证机制 110 Nacos 19 > Nacos 架构 内核层 插件机制:实现三个模块可分可合能力,实现扩展点 SPI 机制,用于扩展自己公司定制。 事件机制:实现异步化事件通知,SDK 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。 回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。 容量管理:管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性。 流量管理:按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制。 缓存机制:容灾目录,本地缓存,Server 缓存机制,是 Nacos 高可用的关键。 启动模式:按照单机模式,配置模式,服务模式,DNS 模式模式,启动不同的模块。 ⼀致性协议:解决不同数据,不同⼀致性要求情况下,不同⼀致性要求,是0 码力 | 326 页 | 12.83 MB | 9 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译Filters 默认过滤器 10.4. Session Management 10.5. JSP Tag Library IV. Auxiliary Support 辅助支持 11. Caching 缓存 12. Concurrency & Multithreading 并发与多线程 13. Testing 测试 14. Custom Subjects 自定义 Subject V. Integration Webapp Tutorial 初学者web应用教程 22. Application Security With Apache Shiro 用Shiro保护你的应用安全 23. CacheManager 缓存管理 24. Apache Shiro Cryptography Features 加密功能 Apache Shiro 1.2.x Reference Manual 中文翻译 3 apache-shiro-1 还有其他的功能来支持和加强这些不同应用环境下安全领域的关注点。特别是对以下的功能 支持: Web支持:Shiro 提供的 web 支持 api ,可以很轻松的保护 web 应用程序的安全。 缓存:缓存是 Apache Shiro 保证安全操作快速、高效的重要手段。 并发:Apache Shiro 支持多线程应用程序的并发特性。 测试:支持单元测试和集成测试,确保代码和预想的一样安全。 "Run0 码力 | 196 页 | 2.34 MB | 1 年前3
Apache Shiro参考手册中文版也提供了额外的功能来支持和加强在不同环境下所关注的方面,尤其是以下这些: Web Support:Shiro 的 web 支持的 API 能够轻松地帮助保护 Web 应用程序。 Caching:缓存是 Apache Shiro 中的第一层公民,来确保安全操作快速而又高效。 Concurrency:Apache Shiro 利用它的并发特性来支持多线程应用程序。 Testin 但这是一个相当简单的应用程序。你可能已经问过你自己,“如果我不想使用 INI 用户帐户,而是要连接到一个更 复杂的用户数数据源,该怎么办呢?”。 要回答这个问题,需要对 Shiro 的架构和支持的配置机制有更深一些的理解。我们下面将涉及到 Shiro 的架构。 Apache Shiro Architecture Apache Shiro 的设计目标是通过直观和易于使用来简化应用程序安全。Shiro Authorizer(org.apache.shiro.authz.Authorizer) Authorizer 是负责在应用程序中决定用户的访问控制的组件。它是一种最终判定用户是否被允许做某事的机制。 与 Authenticator 相似,Authorizer 也知道如何协调多个后台数据源来访问角色恶化权限信息。Authorizer 使用 该信息来准确地决定用户是否被允许执行给定的动作。0 码力 | 92 页 | 1.16 MB | 1 年前3
ThinkJS 1.2 中文文档运⾏行时的⼀一些⽂文件 │ │ ├── Cache -‐-‐-‐-‐ 缓存⺫⽬目录 │ │ ├── Data -‐-‐-‐-‐ 数据⺫⽬目录 你可以将默认分组改成合适的,如:Blog CBD 模式 核⼼心 (Core) ⾏行为是 ThinkJS 扩展机制中⼀一项⽐比较关键的扩展,⾏行为可以独⽴立调⽤用,也可以整合到标签 (tag) ⾥里⼀一起调⽤用,⾏行为 是执⾏行过程中⼀一个动作或事件。如:路由检测是个⾏行为、静态缓存检测也是个⾏行为。 标签 (tag) 是⼀一组⾏行为的集合,是在系统执⾏行过程中切⾯面处调⽤用的。与 EventEmitter EventEmitter 不同,标签⾥里的⾏行为是按 顺序执⾏行的,当前的⾏行为通过 Promise 机制控制后⾯面的⾏行为是否被执⾏行。 当执⾏行⼀一个 http 请求时,会在对应的时机执⾏行如下的标签位: app_init 应⽤用初始化 path_info 解析 path 路径 resource_check 静态资源请求检测 route_check 路由检测 app_begin0 码力 | 104 页 | 1.29 MB | 1 年前3
ThinkJS 2.2 中文文档等常见的数据库,并且封装了很多操作数据库的接口, 无需手动拼接 SQL 语句,还可以自动防止 SQL 注入等安全漏洞。同时支持事务、关联模型等高级 功能。 代码自动更新 ThinkJS 内置了一套代码自动更新的机制,文件修改后立即生效,不用重启 Node.js 服务,也不用 借助第三方模块。 自动创建 REST 接口 使用 thinkjs 命令可以自动创建 REST 接口,不用写任何的代码即可完成 REST 框架功能的稳定。 支持命令行调用执行定时任务 ThinkJS 里的 Action 除了可以响应用户的请求,同时支持在命令行下访问,借助这套机制就可以 很方便的执行定时任务。 Hook 和 Middleware ThinkJS 使用 Hook 和 Middleware 机制,可以灵活的对访问请求进行拦截处理。 详细的日志 ThinkJS 内置了详细的日志功能,可以很方便的查看各种日志,方便追查问题。 already in use, port:8360. http://www .thinkjs.org/doc/error.html#EADDRINUSE 丰富的路由机制 ThinkJS 支持正则路由、规则路由、静态路由等多种路由机制,并且可以基于模块来设置。可以让 URL 更加简洁的同时又不丢失性能。 支持国际化和多主题 ThinkJS 使用很简单的方法就可以支持国际化和多主题等功能。 与其他框架的对比0 码力 | 277 页 | 3.61 MB | 1 年前3
2022年美团技术年货 合辑数据治理一体化实践之体系化建模 1263 vi > 2022年美团技术年货 运维 / 安全 1277 数字化新业态下数据安全创新——Token 化 1277 Linux 中基于 eBPF 的恶意利用与检测机制 1293 如何应对开源组件风险?软件成分安全分析(SCA)能力的建设与演进 1328 算法 < 1 YOLOv6:又快又准的目标检测框架开源啦 作者:楚怡 凯衡 等 1. 概述 YOLOv6 AutoHEnsGNN 框架 多类别层次化图模型优化: (1)候选图模型的生成:现实世界中的图通常是多种属性的组合,这些属性信息很难 只用一种方法捕捉完全,因此,我们使用了基于谱域、空域、Attention 机制等多种 不同类型的模型来捕捉多种属性关系。不同模型在不同数据集上效果差异较大,为了 防止后续模型融合时加入效果较差的模型,会对 GCN、GAT、APPNP、TAGC、 DNA、GraphSAG Layer(如图 19):三 边时空注意力机制神经网络来对用户历史行为进行建模,具体通过对请求经纬度信 息、商户经纬度信息和请求时间的交互进行学习。针对空间信息交叉,我们进一步采 用地理位置哈希编码和球面距离相结合的方式;针对时间信息交叉,我们也采用绝对 与相对时间相结合的方式,有效实现用户行为序列在不同时空条件下的三边表达。最 后,经上述网络编码后的时空信息经过注意力机制网络融合,得到 LBS 场景下用户0 码力 | 1356 页 | 45.90 MB | 1 年前3
共 416 条
- 1
- 2
- 3
- 4
- 5
- 6
- 42













