首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏乐享123

    Webtorrent Redefine CDN?

    最近发现了一个开源的JS东东,webtorrent: https://github.com/feross/webtorrent 用webRTC实现了一个浏览器端的bt客户端。 这个点子我还在几年前试过呢?当时想用socketio来做,但各种限制,当时webRTC还是个小众,没有被浏览器主流实现。 试了一下,效果还差强人意。 脑洞开一下,话说这会不会是快播们的春天来了。 严肃一点再想想,是不是CDN提供商们可以利用它分担压力,提升速度,走上人生巅峰…. 留待后续观察。

    80040发布于 2018-06-04
  • 来自专栏JAVA相关

    Arthas redefine(加载外部的.class文件,redefine到JVM里 )

    @toc二、命令列表2.2 class/classloader相关命令2.2.3 redefine(加载外部的.class文件,redefine到JVM里 )提示:目的:常用来解决线上服务不停止,修改代码操作注意点 注意点2:如果 mc 失败,可以在本地开发环境编译好 class 文件,上传到目标系统,使用 redefine 热加载 class注意点3:目前 redefine 和 watch/trace/jad/tt 等命令冲突,以后重新实现 redefine 功能会解决此问题注意点4:redefine 后的原来的类不能恢复,redefine 有可能失败(比如增加了新的 field),参考 jdk 本身的文档。 注意点5:reset命令对redefine的类无效。如果想重置,需要redefine原始的字节码。注意点6:redefine命令和jad/watch/trace/monitor/tt等命令会冲突。 执行完redefine之后,如果再执行上面提到的命令,则会把redefine的字节码重置。

    51100编辑于 2025-04-27
  • 来自专栏FunTester

    arthas命令redefine实现Java热更新

    今天分享一个非常重要的命令redefine,主要作用是加载外部的.class文件,用来替换JVM已经加载的类,总结起来就是实现了Java的热更新。 redefine在一下几种情况中会失败:1、增加了field;2、增加了method;3、替换正在运行的方法。 arthas命令redefine实现Java热更新 代码 package com.fun; import com.fun.frame.SourceCode; import org.slf4j.Logger

    1.2K30发布于 2020-05-18
  • 来自专栏Android相关

    Linux编程--解决头文件`redefine of struct xxx`

    但是在检查后发现,并没有出现include多次头文件,也只有这一个定义ELF_FILE结构体的地方

    5.4K20发布于 2019-05-07
  • 来自专栏JVM以及其他

    lambda表达式导致arthas无法redefine的问题

    通过arthas的redefine命令,可以像PHP一样,不用重新发布,就可以改变程序行为(前提是不改变类结构,不改变方法签名)。 但是用多了,发现很多时候,我们就改了几行代码,甚至有的时候就添加了一行日志,就无法redefine了。提示 redefine error! java.lang.UnsupportedOperationException: class redefinition failed: attempted to add a method [redefine-error.png 本文最初发表于:https://robberphex.com/lambda-causes-arthas-cant-redefine/

    1.2K50发布于 2021-11-23
  • 来自专栏Kirito的技术分享

    lambda 表达式导致 Arthas 无法 redefine 的问题

    这篇文章主要介绍了 lambda 表达式导致 Arthas 无法 redefine 的问题,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。 通过 arthas 的 redefine 命令,可以做到不用重新发布,就可以改变程序行为。 但是用多了,发现很多时候,我们就改了几行代码,甚至有的时候就添加了一行日志,就无法 redefine 了。 提示: redefine error!

    3K20发布于 2020-09-08
  • 来自专栏李维亮的博客

    vue-cli 外部引入vue-router报错 Uncaught TypeError: Cannot redefine property: $router

    ElementUI": "element-ui", 'babel-polyfill': 'window' }, console中提示 Uncaught TypeError: Cannot redefine

    1.8K30发布于 2021-07-08
  • 来自专栏全栈程序员必看

    gitlab 删除仓库_获取下拉框选中的文本值

    方法一:使用git命令来删除分支 1、进入相应的仓库,然后使用 git branch -a 命令查看该仓库所有的分支 2、删除相应的分支,这里以删除 “Redefine-PinDir-for-MoroccoA ” 为例,执行 git push origin –delete Redefine-PinDir-for-MoroccoA 命令就可以删除远程仓库的 “Redefine-PinDir-for-MoroccoA ” 分支了 3、再次使用 git branch -a 命令查看该仓库所有的分支,发现 “Redefine-PinDir-for-MoroccoA” 已经没有了 方法二:直接在gitlab上删除分支

    3K20编辑于 2022-11-03
  • 来自专栏『学习与分享之旅』

    Arthas的classloader相关命令

    可自行上传一个 .java 文件上去进行测试:mc /usr/local/arthas/Test.java -d /usr/local/arthas/图片图片refine作用,加载外部的 .class 文件,redefine jvm 已加载的类,注意事项,redefine 的 class 不能修改、添加、删除类的 field 和 method,包括方法参数、方法名称及返回值,如果 mc 失败,可以在本地开发环境编译好 class 文件,上传到目标系统,使用 redefine 热加载 class,目前 redefine 和 watch / trace / jad / tt 等命令冲突,以后重新实现 redefine 功能会解决此问题 命令对字节码重新编译,将 java 文件编译成 class 文件:mc /usr/local/arthas/MathGame.java -d /usr/local/arthas图片使用 redefne:redefine

    55310编辑于 2023-09-30
  • 来自专栏Kirito的技术分享

    Arthas | 热更新线上代码

    本文以 Arthas 3.1.7 版本为例,主要使用到 jad/mc/redefine 三个指令。 Arthas 修改热更的逻辑主要分为三步: jad 命令反编译出内存中的字节码,生成 class 文件 修改代码,使用 mc 命令内存编译新的 class 文件 redefine 重新加载新的 class 编译完成后,/tmp 目录下会生成对应的 class 字节码文件 redefine 热更新代码 $ redefine /tmp/moe/cnkirito/arthas/demo/HelloService.class 使用限制 不允许新增或者删除 field/method 会出现类似下面的提示 redefine error! 时也可以同时传入多个入参 $ redefine /tmp/moe/cnkirito/arthas/demo/HelloService$Inner.class /tmp/moe/cnkirito/arthas

    3.3K20发布于 2020-02-26
  • 来自专栏小灰灰

    IDEA + maven 零基础构建 java agent 项目

    <Agent-Class>com.git.hui.agent.SimpleAgent</Agent-Class> <Can-Redefine-Classes >true</Can-Redefine-Classes> <Can-Retransform-Classes>true</Can-Retransform-Classes Manifest-Version: 1.0 Premain-Class: com.git.hui.agent.SimpleAgent Agent-Class: com.git.hui.agent.SimpleAgent Can-Redefine-Classes --<Can-Redefine-Classes>true</Can-Redefine-Classes>--> <! >true</Can-Redefine-Classes> <Can-Retransform-Classes>true</Can-Retransform-Classes> </manifestEntries

    2.7K30发布于 2020-03-20
  • 来自专栏程序通事

    手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理

    详情参考:阿里巴巴Arthas实践--jad/mc/redefine线上热更新一条龙 假设我们现在有一个 HelloService 类,逻辑如下,现在我们使用 Arthas 热更新代码,让其输出 hello tmp Memory compiler output: /tmp/com/andyxh/HelloService.class Affect(row-cnt:1) cost in 463 ms. 2.5、redefine 热更新代码 运行 redefine 命令: $ redefine /tmp/com/andyxh/HelloService.class redefine success, size: 1 热更新成功之后 这样我们只需要运行 redefine 命令即可。也就是说实际上起到作用只是 redefine 。 ## 指定 agent-main 全名 Agent-Class: com.andyxh.AgentMain ## 设置权限,默认为 false,没有权限替换 class Can-Redefine-Classes

    2.2K30发布于 2019-11-18
  • 来自专栏机械之心

    【玩转 Cloud Studio】用Cloud Studio搭建自己的博客(hexo)

    第五步:添加主题 例如添加下面这个主题: 图片1 5-1、下载主题文件 cd themes git clone https://github.com/EvanNotFound/hexo-theme-redefine.git themes/redefine 图片 图片 图片 5-2、修改配置文件 修改内部文件_config.yml 中的第100行,将主题名称改为之前下载的主题名称 redefine,修改如下: theme: redefine 图片 5-3、重新配置并部署 在命令行输入下面命令,重新编译并部署,成功效果如下图: cd ./ && set port=4000 && export PORT=4000 && yarn

    1.6K112编辑于 2023-05-18
  • 来自专栏用户4480853的专栏

    Java基础知识:探针技术

    } } 1.2 在MANIFEST.MF配置环境参数 普通项目配置: Manifest-Version: 1.0 Premain-Class: com.agent.AgentTest Can-Redefine-Classes Premain-Class 指定代理类 Agent-Class 指定代理类 Boot-Class-Path 指定bootstrap类加载器的搜索路径,在平台指定的查找路径失败的时候生效, 可选 Can-Redefine-Classes > true </Can-Redefine-Classes> 通过类名筛选出来要替换的 Class 通过传递进行的 Class 类文件路径加载数据 通过 redefineClasses 进行类文件的热替换 使用 redefineClasses 函数必须将 Can-Redefine-Classes > true </Can-Redefine-Classes>

    1.8K20编辑于 2022-08-05
  • 来自专栏小工匠聊架构

    APM - Hello Javaagent

    <Boot-Class-Path>javassist-3.18.1-GA.jarBoot-Class-Path> <Can-Redefine-Classes >falseCan-Redefine-Classes> manifestEntries> archive> GAversion> dependency> dependencies> project> Premain-Class:指定包含 premain 方法的类名 ,改成自己的类 Can-Redefine-Class agent 依懒包逗号分割 Boot-Class-Path: javassist-3.18.1-GA.jar 是否允许重定义 Can-Redefine-Classes: true 允许重载 Can-Retransform-Classes

    1.1K30发布于 2021-08-17
  • 来自专栏Kirito的技术分享

    Arthas 开源一周年,Github Star 16K,我们一直在坚持什么?

    ognl 命令任意代码执行 mc 线上内存编译器 redefine 命令线上热更新代码 logger 命令一键查看应用里的所有 logger 配置 sysprop 查看更新 System Properties jad/mc/redefine 一条龙热更新线上代码 以 Arthas在线教程 里的UserController为例: 使用jad反编译代码 jad --source-only com.example.demo.arthas.user.UserController output: /tmp/com/example/demo/arthas/user/UserController.class Affect(row-cnt:1) cost in 346 ms 使用redefine 命令,因为可以热更新代码 $ redefine /tmp/com/example/demo/arthas/user/UserController.class redefine success, size

    1.1K10发布于 2019-10-09
  • 来自专栏开源小分队

    超级强的Java在线诊断利器

    ## class的路径为绝对路径 redefine /self_data/spring-boot-simple/actuator-simple/target/classes/com/hs/springboot /actuator/conf/Test.class ##下面是响应信息,表示已经重新加载了 redefine success, size: 1, classes: com.hs.springboot.actuator.conf.Test 3.通过jvm命令查看当前jvm的状态信息 4.通过heapdump 生成应用当前的dump信息,和使用jmap命令效果类似 5.还有类加载器相关的命令 例如上面介绍的redefine 加载外部class

    64340编辑于 2022-12-06
  • 来自专栏硬核项目经理的专栏

    一起学习PHP的runkit扩展如何使用

    动态修改常量 define('A', 'TestA'); runkit_constant_redefine('A', 'NewTestA'); echo A; // NewTestA 是不是很神奇 echo "Original Testme Implementation\n"; } testme(); // Original Testme Implementation runkit_function_redefine Implementation\n";'); testme(); // New Testme Implementation 定义了一个 testme() 方法,然后通过 runkit_function_redefine // php.ini runkit.internal_override=1 runkit_function_redefine('str_replace', '', 'echo "str_replace runkit_method_redefine('Example', 'func1', function(){ echo "New Func1!

    1.4K10发布于 2020-09-21
  • 来自专栏一个会写诗的程序员的博客

    JVMTM Tool Interface:JVM源码分析之javaagent原理完全解读

    */ jboolean mRedefineAvailable; /* cached answer to "does this agent support redefine " */ jboolean mRedefineAdded; /* indicates if can_redefine_classes capability mRedefineAvailable:是否开启了redefine功能,在javaagent的MANIFEST.MF里设置Can-Redefine-Classes:true。 Class Redefine的实现 类重新定义,这是Instrumentation提供的基础功能之一,主要用在已经被加载过的类上,想对其进行修改,要做这件事,我们必须要知道两个东西,一个是要修改哪个类, redefine后的字节码 我们从InstrumentationImpl的retransformClasses方法参数看猜到应该是做回滚操作,因为我们只指定了class: public void

    2K10发布于 2020-05-18
  • 来自专栏sktj

    python 目录复制类 脚本

    generally use__X pseudo private names, but all names here are exported for use in subclasses and clients; redefine class SearchVisitor(FileVisitor): """ Search files at and below startDir for a string; subclass: redefine lists, candidate as needed; subclasses can use testexts to specify file types to search (but can also redefine

    75220编辑于 2022-05-13
领券