ASM在游戏服务器的使用

简介: ASM在游戏服务器的使用

ASM 是一个 Java 字节码操控框架。它能够以二进制形式修改已有类或者动态生成类。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。

不过ASM在创建class字节码的过程中,操纵的级别是底层JVM的汇编指令级别,这要求ASM使用者要对class组织结构和JVM汇编指令有一定的了解。

而EsotericSoftware的reflectasm帮忙跨过了这个障碍,使用ASM起来非常方便。

方法级别的反射原本如下写法:

 

Method method=instance.getClass().getMethod("addName");
method.setAccessible(true); 
method.invoke(instance,  "Awesome McLovin");
method.setAccessible(false);

 

 

 

 

用Reflectasm后,调整为如下,是不是很简单呢?

Object instance =...
MethodAccess access = MethodAccess.get(instance.getClass());
int addNameIndex = access.getIndex("addName",access.getParameterTypes());
access.invoke
目录
相关文章
|
网络协议 Serverless 测试技术
使用ASM管理Knative服务(3):在Knative on ASM中使用自定义域名
对于Knative服务,服务的DNS名默认格式为:{服务名}.{服务所在命名空间}.{默认域名},Knative会默认使用example.com作为服务的域名。Knative on ASM支持使用自定义域名作为默认域名。本文介绍如何在Knative Serving中使用自定义域名。
218 0
使用ASM管理Knative服务(3):在Knative on ASM中使用自定义域名
|
Kubernetes Cloud Native 物联网
使用ASM管理Knative服务(1):Knative on ASM概述
阿里云服务网格ASM集成ACK、ASK上Knative的Serving能力, 帮助用户方便管理Serverless工作负载,可以和事件很好的结合并且提供了基于请求驱动的自动扩缩的能力,而且在没有服务需要处理的时候可以缩容到零个实例。同时基于Service Mesh技术, Serving还具有流量灰度发布能力。
231 0
使用ASM管理Knative服务(1):Knative on ASM概述
|
存储 Serverless 异构计算
使用ASM管理Knative服务(2):使用Knative on ASM部署Serverless应用
如何在阿里云服务网格ASM中开启Knative on ASM功能, 并结合ACK或者ASK部署管理Serverless应用服务。
636 0
使用ASM管理Knative服务(2):使用Knative on ASM部署Serverless应用
|
缓存 Prometheus Kubernetes
服务网格ASM使用FAQ之(2):使用ASM实现服务慢启动模式以支持预热功能
### 背景 在未启用慢启动预热能力时, 每当新目标Pod加入时,请求方都会向该Pod发送一定比例的流量, 不支持新 Pod 的渐进式流量增加。这对于需要一些预热时间来提供全部负载的服务可能是不可取的,并且可能会导致请求超时、数据丢失和用户体验恶化。 作为一个实际示例,上述问题体现在基于 JVM 的 Web 应用程序中,这些应用程序使用水平 pod 自动缩放。当服务刚启动时,它会被大量请求淹没
320 0
|
运维 Kubernetes 网络协议
基于ASM的GRPC服务部署实践
继MicroServices之后,ServiceMesh是又一个推动软件工业的革命性技术。其服务治理的方法论,不仅改变了技术实现的方式和社会分工。 运行于数据平面的用户服务与治理服务的各种规则彻底解耦。运行于控制平面的规则定义组件,将流量控制的具体规则推送给运行于数据平面的proxy,proxy通过对用户服务的ingress和egress的实际控制,最终实现服务治理。 原本需要服务开发
411 0
基于ASM的GRPC服务部署实践
|
弹性计算 运维 Kubernetes
阿里云服务网格ASM公测来袭系列之一:快速了解什么是ASM
阿里云服务网格(Alibaba Cloud Service Mesh,简称 ASM)正式发布公测版本。该产品提供了一个全托管式的服务网格平台,兼容于社区 Istio 开源服务网格,用于简化服务的治理,包括服务调用之间的流量路由与拆分管理、服务间通信的认证安全以及网格可观测性能力,从而极大地减轻开发与运维的工作负担。
1889 0
阿里云服务网格ASM公测来袭系列之一:快速了解什么是ASM
[C in ASM(ARM64)]第一章 一些实例
## C程序设计语言的汇编解释(ARM64版) 第一章 一些实例 不多废话,直接从实例开始吧! ### 1.1 开始 讲语言的第一个例子自然是在控制台打印: ``` hello, world ``` 想必大家都可以很轻易的用C写出如下代码: ``` #include main() { printf("hello, world\n"); } ``
1906 0
|
SQL Web App开发 数据库
|
存储 Oracle 关系型数据库
|
SQL Oracle 关系型数据库