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

    runtime

    作为iOS开发者,runtime特性是必须了解的重点加分项。 那本篇文章先从runtime功能入手,让你体会runtime的强大,再介绍其原理。在此之前,先了解下基础知识。 传送门 Objective-C Runtime Programming Guide苹果官方文档 Objective-C Runtime 是什么? 术语 1、Objective-C runtime包括两个版本,Modern Runtime和 Legacy Runtime: Modern Runtime(现代的Runtime):64 位的 Mac OS 任何方法调用本质:就是发送一个消息(用 runtime发送消息,OC 底层实现通过 runtime 实现),每一个 OC 的方法,底层必然有一个与之对应的 runtime 方法。

    97221发布于 2020-12-23
  • 来自专栏全球技术精选

    .NET Core Runtime vs .NET Framework Runtime

    在我从 .NET Framework 到 .NET Core 的过渡期间,有一件事情让我很长时间都感到困惑,那就是 Runtime 运行时, 实际上 Runtime 在 .NET Framework 理想情况下,CLR 和 BCL 应该统称为 .NET Framework Runtime

    1K20编辑于 2022-02-09
  • 来自专栏正则

    oc runtime

    sel_registerName("alloc")); p = objc_msgSend(p, @selector(init)); 获取一个类的所有方法(包括属性的get和set的方法),必须导入库 #import <objc/runtime.h methodSel =  method_getName(method);         NSLog(@"%@",NSStringFromSelector(methodSel));     } //通过runtime

    77730发布于 2021-05-11
  • 来自专栏每日一篇技术文章

    runtime

    (runtime.GOROOT()) } ? (runtime.Version()) } ? image.png 我们创建了一个指针类型的变量Student 当我们调用runtime.GC的时候,内存立即会回收,你可以把runtime.GC()屏蔽掉,程序就不在执行了 ---- 8.给变量绑定方法 import ( "runtime" "fmt" ) func main() { pc,_,line,_ := runtime.Caller(1) fmt.Printf("main 方法有很多种,不过就针对这个知识点,我们就使用 runtime.Gosched()来解决 package main import ( "fmt" "runtime" ) func main()

    87040发布于 2019-06-11
  • 来自专栏娱乐心理测试

    关于runtime

    一.概述 Runtime是一套C语言的API,基本是用 C 和汇编写的,封装了很多动态性相关的函数,在这里下到苹果维护的开源代码。主要是使用官方Api,解决我们框架性的需求。 我们平时编写的OC代码,底层都是转换成了Runtime API进行调用。 二.消息传递 Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行消息转发。 当程序执行[object doSomething]时,会向消息接收者(object)发送一条消息(doSomething),runtime会根据消息接收者是否能响应消息而做出不同的反应。 runtime的执行流程: 首先,通过object的isa指针找到它的 class ; 在 class 的 method list 找 doSomething ; 如果 class 中没到 doSomething

    79610发布于 2019-12-26
  • 来自专栏Golang语言社区

    package runtime

    import "runtime" runtime包提供和go运行时环境的互操作,如控制go程的函数。 runtime/debug包的SetGCPercent函数允许在运行时修改该百分比。 参见http://golang.org/pkg/runtime/debug/#SetGCPercent 环境变量GODEBUG控制运行时的debug输出。 绝大多数调用者应当使用runtime/pprof包,而非直接调用GoroutineProfile。 绝大多数使用者应当使用runtime/pprof包,而非直接调用ThreadCreateProfile。

    1.2K20发布于 2018-07-26
  • 来自专栏Scott_Mr 个人专栏

    初识 Runtime

    Runtime简介 Runtime简称运行时,OC就是运行时机制。 C语言中函数的调用在编译的时候就会决定调用哪个函数。 Runtime的作用 发送消息 方法调用的本质就是向对象发送消息。 objc_msgSend,只有对象才能发送消息,因此以objc开头。 结束语 希望通过本文能让大家学习到一些关于Runtime的知识,如果有什么疑问,欢迎大家一起讨论。

    792100发布于 2018-05-16
  • 来自专栏移动端开发

    Swift Runtime

    Runtime 的API获取你想要的属性方法等等,那Swift呢? 先说说这个Runtime,在自己之前的文章中有总结过关于OC的Runtime以及它API的一些基本的方法和在项目中具体的使用,在这里再大概的提一下Runtime的基本的概念:       RunTime 那这样就又衍生出一个问题         那Swiftw就没办法利用Runtime了吗?       想一想,要是真的Swift没办法利用Runtime,那是一件得多让人失望的事! 答案也肯定是否定的,我们还是能让Swift用Runtime的。 Swift Runtime       上面解释了这个关键字之后关于Swift的Runtime方面的只是就有了一个基本的了解了,下面的这些代码就像我们整理OC Runtime 那样也整理出来:      

    5.3K71发布于 2018-02-06
  • 来自专栏TomatoCool

    go runtime

    runtime.Gosched() Gosched()函数用于让出 CPU 时间,让其他 goroutine拥有运行的机会。其原理是将当前goroutine放回到队列中,等待下一次调度。 runtime.Gosched() runtime.Goexit() 终止当前的goroutine,提前执行所有defer函数。 runtime.Goexit() runtime.GC() GC执行一次垃圾回收。 runtime.GC() runtime.NumGoroutine() 返回当前的goroutine数。 runtime.NumGoroutine()

    29630编辑于 2023-09-13
  • 来自专栏哈雷彗星撞地球

    Runtime系列(二)--Runtime的使用场景

    Runtime 理解介绍的文章非常多,我只想讲讲Runtime 可以用在哪里,而我在项目里哪些地方用到了runtime。多以实际使用过程为主,来介绍runtime的使用。 ** 那么runtime 怎么使用?可以用在哪些场景下呢? ** 首先,使用runtime 相关API,要#import <objc/runtime.h> 1.运行时获取某个类的属性或函数 运行时动态获取某个类的属性或者函数等,可以用来做很多事情,如json 这个功能也可以利用runtime类实现,这里有示例代码: int numClasses; Class *classes = NULL; numClasses = objc_getClassList } 以上示例代码摘自:Objective-C Runtime 运行时之四:Method Swizzling 关于Method Swizzling,他是把两个方法的实现部分互换了。

    1.9K43发布于 2018-08-22
  • 来自专栏我只不过是出来写写iOS

    runtime的那些事(一)——runtime基础介绍

    二、 runtime 版本 三、 与 runtime 的三种交互方式 四、 消息机制的基本原理与执行流程 五、 动态解析与消息转发 ---- 一、什么是 runtime? 只要有可能,runtime 就会动态地完成任务。这意味着 Objective-C 语言不仅需要编译器,还需要 runtime 来执行编译代码。 ---- 三、与 runtime 交互方式 接下来会梳理当 NSObject 类与 runtime 交互时,runtime 是如何动态加载新类以及将消息转发给其它对象的。 1. 3. runtime 系统提供的函数 若要直接使用 runtime 提供的函数,必须先引入#import <objc/runtime.h> 通过一个最简单的例子来看下 Objective-C 代码是如何转化成 runtime 的C函数。

    2.1K21发布于 2019-04-22
  • 来自专栏Code_iOS

    Object Runtime -- Weak

    [ 本文使用的是 objc4-750.1 ] Xcode->Navigator->Show the find Navigator-> weak 直接搜索 weak,找到相关的可用内容 runtime.h SEL_retainWeakReference; extern SEL SEL_allowsWeakReference; extern bool noMissingWeakSuperclasses(void); objc-runtime-new.h

    1.5K20发布于 2019-04-01
  • 来自专栏Helloted

    神奇的Runtime

    SEL selector, arg1, arg2, …)之selector] Seloctor:方法选择器,其实它就是个映射到方法的C字符串,你可以用 Objc 编译器命令@selector()或者 Runtime ,不缓存,方法返回,否则 消息快速转发,这里将消息分配给其他对象处理 6、消息转发机制执行前,Runtime 系统允许我们替换消息的接收者为其他对象。 消息普通转发 7、首先runtime发送methodSignatureForSelector:消息 生成Selector对应的方法签名,即参数与返回值的类型信息。 五、动态添加属性 category可以动态添加方法,借助Runtime还可以添加属性,但是不能添加成员变量,Category可以通过runtime.h中objc_getAssociatedObject 我们可以利用 method_exchangeImplementations 来交换2个方法中的IMP, 我们可以利用 method_setImplementation 来直接设置某个方法的IMP 八、利用Runtime

    94320编辑于 2022-06-06
  • 来自专栏编程之旅

    iOS开发 —— Runtime

    Runtime 因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。 也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。 这就是 Objective-C Runtime 系统存在的意义,它是整个Objc运行框架的一块基石。 Runtime基本是用C和汇编写的,可见苹果为了动态系统的高效而作出的努力。 Normal forwarding 这一步是 Runtime最后一次给你机会挽救程序。 如果 resolve 方法返回 NO,Runtime 就发送 -forwardingTargetForSelector: 允许你把这个消息转发给另一个对象; 如果没有新的目标对象返回, Runtime

    1.5K30发布于 2018-08-30
  • 来自专栏戴铭的博客

    Objc Runtime 总结

    概述 Objc Runtime使得C具有了面向对象能力,在程序运行时创建,检查,修改类、对象和它们的方法。 Runtime是C和汇编编写的,这里http://www.opensource.apple.com/source/objc4/可以下到苹果维护的开源代码,GNU也有一个开源的runtime版本,他们都努力的保持一致 苹果官方的Runtime编程指南 Runtime函数 Runtime系统是由一系列的函数和数据结构组成的公共接口动态共享库,在/usr/include/objc目录下可以看到头文件,可以用其中一些函数通过 ; //isa指针指向Meta Class,因为Objc的类的本身也是一个Object,为了处理这个关系,runtime就创造了Meta Class,当给类发送[NSObject alloc]这样消息时 }; Meta Class meta class是一个类对象的类,当向对象发消息,runtime会在这个对象所属类方法列表中查找发送消息对应的方法,但当向类发送消息时,runtime就会在这个类的meta

    1K20发布于 2020-06-16
  • 来自专栏每日一篇技术文章

    go-runtime

    import ( "fmt" "runtime" ) func main() { fmt.Println(runtime.NumCPU()) } [image.png] --- 4.设置最大可同时执行的最大 ] 我们创建了一个指针类型的变量Student 当我们调用runtime.GC的时候,内存立即会回收,你可以把runtime.GC()屏蔽掉,程序就不在执行了 --- 8.给变量绑定方法,当垃圾回收的时候进行监听 大多数调用者应当使用runtime/pprof包或testing包的-test.memprofile标记,而非直接调用MemProfile 14.执行一个断点 func Breakpoint() runtime.Breakpoint := make([]uintptr,10) i := runtime.Callers(1,pcs) for _,pc := range pcs[:i]{ println(runtime.FuncForPC 方法有很多种,不过就针对这个知识点,我们就使用 runtime.Gosched()来解决 package main import ( "fmt" "runtime" ) func main()

    1.5K40发布于 2018-09-20
  • 来自专栏Hongten

    java开发_Runtime

    下面就是一些Runtime的应用: 1 public static void main(String[] a){ 2 Runtime runtime = Runtime.getRuntime (); 3 long freeMemoery = runtime.freeMemory(); 4 long totalMemory = runtime.totalMemory (); 5 long usedMemory = totalMemory - freeMemoery; 6 long maxMemory = runtime.maxMemory useableMemory = maxMemory - totalMemory + freeMemoery; 8 9 System.out.println("当前时间:"+runtime maxMemory); 14 System.out.println("系统可用空间:"+useableMemory); 15 } 运行效果: 1 当前时间:java.lang.Runtime

    74220发布于 2018-09-13
  • 来自专栏iOS小生活

    Runtime再理解

    因此我们需要一个运行时系统(Runtime System)来处理编译后的代码。 Runtime System实际上是一个C语言写的底层库,即一套API,系统在编译完代码之后,在运行的时候还需要依赖Runtime System才能够完整的、确定的代码。这就是Runtime。 3,Runtime的应用 很多人觉得Runtime很高大上、很难学、很难理解、华而不实。 实际上,当你真正理解了Runtime之后,你会发现:“原来我真的可以用Runtime解决很多实际问题~” (1)Runtime——使用类目给某个类添加属性 (2)通过消息转发防止程序崩溃:Runtime ——消息转发流程 (3)提高OC对象序列化与反序列化的效率:Runtime应用——序列化&反序列化 (4)Hook方法进行代码调试:Runtime应用——在不修改原方法的基础上给原方法添加功能 (5)防止在

    79820发布于 2019-10-24
  • 来自专栏Mirror的技术成长

    Runtime 类初探

    Runtime类 认识 Runtime类 在每一个JVM进程中都会存在一个Runtime类,这个类的主要功能是取得一些与运行时有关的环境属性或创建进程等操作。 在Runtime类定义的时候,它的构造方法就已经被私有化了,属于单例设计模式;只有唯一的一个Runtime类的对象,所以在Runtime类里面提供了一个static型方法,这个方法可以取得Runtime getRuntime() 方法 取得Runtime类的实例化对象 内存操作方法 totalMemory() 返回所有可用的内存空间 public long totalMemory() ; maxMemory run = Runtime.getRuntime() ; //取得Runtime类的实例化对象 System.out.println("MAX =" + run.maxMemory()) ; run = Runtime.getRuntime() ; //取得Runtime类的实例化对象 System.out.println("MAX =" + run.maxMemory()) ;

    43530发布于 2020-11-12
  • 来自专栏Golang语言社区

    go语言 runtime

    golang runtime go程序架构图 如上所示是golang程序运行过程中的架构图。 golang程序并没有像java一样自带虚拟机,而是和c类似。 每一个go程序都带有一个runtimeruntime负责和底层操作系统交互。 一个go程序运行所经过的几个主要步骤: 调用osinit,操作系统级别的初始化 调用runtime·schedinit(获取程序运行参数、获取程序环境变量) 调用runtime·mstart启动M(在runtime 中定义的数据结构) 调用runtime·main runtime实现比较复杂,在这里我们使用网上的一张图片 golang 是一门较为简单的语言,简单的语言并不代表不是优秀的语言。

    88150发布于 2018-03-27
领券