简单几步解决在工作中MySql查询数据慢的问题
今天这篇文章是原生与前端共舞模块的第一篇,我来跟你聊聊前端和原生之间的桥梁 JavaScriptCore,看看它是什么、能做哪些事儿。 总结来说,JavaScriptCore 为原生编程语言 Objective-C、Swift 提供调用 JavaScript 程序的动态能力,还能为 JavaScript 提供原生能力来弥补前端所缺能力。 正是因为JavaScriptCore的这种桥梁作用,所以出现了很多使用 JavaScriptCore 开发 App 的框架 ,比如React Native、Weex、小程序、WebView Hybird等框架。 接下来,我们再回过头来看看,JavaScriptCore 的来头是啥,为什么这些框架不约而同地都要用 JavaScriptCore 引擎来作为前端和原生的桥梁呢? 要回答这个问题的话,你还需要了解JavaScriptCore 的背景。
swift闭包是一个捕获了外部变量或者常量的函数,可以有名字的函数,可以是匿名的函数,也可以是不捕获外部变量的函数。所以可以说闭包是特殊的函数。 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 ObjC 中的代码块(blocks)比较相似。
这个微分方程可以用来模拟神经元间通过突触的相互作用方式,换言之就是大脑传递信息的过程。现实生活中有诸多应用场景,比如自动驾驶、大脑和心脏的监测等。 然而,以前求解这个微分方程的过程比较复杂,计算量还会随着数据的增加而暴增—— 模拟几个神经元之间的信息传递还好。但如果像人脑一样,有几百亿个神经元、几百万亿个突触呢? 现在,研究人员终于找到了这个微分方程的近似解析解,一下子将计算速度提升了好几倍。
delegate ● 准确的说是一种设计模式 ● iOS当中以@protocol形式体现 ● 传递方式一对一 ● delegate是使用通知者模式实现
一、Category: ● category编译的时候会生成相应的categor_t结构体,在运行时进行合并到类方法里面去, ● 分类的方法会放到原类方法列表的前面,固先调用,后加载的先调用 ● category编译的时候编译成结构体struct category_t,里面存储着分类的对象方法。类方法,属性,协议信息,在程序运行的时候,runtime会将category的数据合并到类信息中(类对象,元类对像) 特点: ● 运行时决议 ● 可以为系统类添加分类、方法 二、extension 延展、类扩展、特殊的分类、匿名分类 ● 为类添加私有的属性和方法,但是没有独立的实现(@implementation)必须依赖原类来实现方法,所以和原类的.m 文件写在一起。 ● 在编译后,成员变量就被添加到原类的成员变量中,方法被添加到原类的methodlist
一、KVO的概念 ● KVO(Key Value Observing) 键值观察是苹果提供的一套事件通知机制,可以用于监听某个对象属性值的改变 ● KVO 不能监听成员变量 ● 与 NSNotificationCenter 一样,都是 iOS 观察者模式的一种实现。不同的是 KVO是一对一的,且一般情况下对被监听的对象无侵入性,不需要被监听对象修改代码。 ● 以 KVO 为模型慢慢衍生出来响应式编程的思想。 ● KVO 可以监听普通类型属性,也可以监听集合类型( NSArray / NSSet )的属性。 ● KVO 默认自动开启监听,也可以手动开启。 ● 注册与移除监听需要成对儿出现: ○ 如果重复移除监听,会报 NSRangeException 异常。 ○ 如果不移除,观察者释放后,再次发送 KVO 消息给它时,会报野指针的异常。 ○ 苹果官方推荐的方式是,在init的时候进行addObserver,在dealloc时removeObserver,这样可以保证add和remove是成对出现的,是一种比较理想的使用方式。
当CPU + GPU处理任务的时间 > 16.67 毫秒,就会出现掉帧现象。所以优化卡顿,要从CPU 、GPU两个方面入手。
什么是慢SQL?顾名思义,运行时间较长的 SQL 语句即为慢 SQL! 那问题来了,多久才算慢呢? 这个慢其实是一个相对值,不同的业务场景下,标准要求是不一样的。 我们都知道,我们每执行一次 SQL,数据库除了会返回执行结果以外,还会返回 SQL 执行耗时,以 MySQL 数据库为例,当我们开启了慢 SQL 监控开关后,默认配置下,当 SQL 的执行时长大于 10 秒,会被记录到慢 SQL 的日志文件中。
简述JVM内存模型 线程私有的运行时数据区: 程序计数器、Java 虚拟机栈、本地方法栈。 线程共享的运行时数据区:Java 堆、方法区。 简述程序计数器 程序计数器表示当前线程所执行的字节码的行号指示器。 程序计数器不会产生StackOverflowError和OutOfMemoryError。 简述虚拟机栈 Java 虚拟机栈用来描述 Java 方法执行的内存模型。线程创建时就会分配一个栈空间,线程结束后栈空间被回收。 栈中元素用于支持虚拟机进行方法调用,每个方法在执行时都会创建一个栈帧存储方法的局部变量表、操作栈、动态链接和返回地址等信息。 虚拟机栈会产生两类异常: StackOverflowError:线程请求的栈深度大于虚拟机允许的深度抛出。 OutOfMemoryError:如果 JVM 栈容量可以动态扩展,虚拟机栈占用内存超出抛出。
手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性。iOS系统提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。 ● UIPanGestureRecognizer(拖动) ● UIPinchGestureRecognizer(捏合) ● UIRotationGestureRecognizer(旋转) ● UITapGestureRecognizer(点按) ● UILongPressGestureRecognizer(长按) ● UISwipeGestureRecognizer(轻扫)
Tomcat是什么? Tomcat 服务器Apache软件基金会项目中的一个核心项目,是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 Tomcat的缺省端口是多少,怎么修改 1. 找到Tomcat目录下的conf文件夹 2. 进入conf文件夹里面找到server.xml文件 3. 打开server.xml文件 4. 在server.xml文件里面找到下列信息 5. 把Connector标签的8080端口改成你想要的端口
1. 字节对齐的原则 1.1 结构体或者联合体的数据成员,第一个成员的存储位置从0开始,之后的每个成员的存储起始位置均为该成员的大小的整数倍。 ● 根据这条原则,上面的 Mystruct1 中 ○ 成员 a 占 1 个字节, 从 0 的位置开始 ○ 成员 b 占 8 个字节,挨 0 + 1 最近的 8 的整数倍是8,所以 b 从 8 的位置开始 ○ 成员 c 占 4 个字节,挨 8 + 8 最近的 4 的整数倍是16,所以 c 从 16 的位置开始 ○ 成员 d 占 2 个字节,挨 16 + 4 最近的 2 的整数倍是20,所以 d 从 20 的位置开始 ○ 一共是占 22 个字节,8 字节对齐,一定要是8的倍数,不足要补齐,所以是 24 个字节
一个 HTTP 超时问题最近有同事反映我们的 app 在网络正常的情况下偶尔会出现请求超时。我的第一反应是某个服务挂掉了(因为最近服务端再搞重构),就反馈给了服务层。但是服务层的同事排查下来发现 api 层并没有产生异常日志,应该不是服务本身或者依赖的中台服务挂掉了。定位想起来 NSURLSession 有个默认的单个Host最大连接数,超过之后会进入排队,可能导致后续服务超时。Objective
1、Spring 事务概述本地事务(区别于分布式事务)也叫数据库事务,MySQL的InnoDB存储引擎就已经支持了事务,Spring中的事务是在底层数据库事务的基础上进一步封装,可以在不同的项目、不同的操作中对事务的传播行为和隔离级别做细粒度的控制。1.1 Spring事务管理的两种方式Spring支持两种事务管理方式:编程式事务和声明式事务。(1)编程式事务对于编程式事务而言,Spring推荐使
从全新的 M2 芯片,到搭载 M2 芯片、全新设计的 MacBook Air,再到换上新芯 M2 的 MacBook Pro 13.3 英寸版本。
在本专栏前面的一些文章中深入探讨过对象的本质、类的本质、消息查找的原理,先简单回顾一下这些知识。一、知识回顾 1.1 对象的本质 一旦一个对象的结构确定,它在内存中的结构也就被确定,在访问对象属性/成员时,会根据每个成员的大小,经过内存偏移来获取到该成员。 1.2 类的本质和方法查找 类是元类的实例,就像对象是类的实例一样,实例方法存储在类中,而类方法存储在元类中。当调用一个实例方法如[o
iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解 iOS App 签名的原理和流程。目的先来看看苹果的签名机制是为了做什么。在 iOS 出来之前,在主流操作系统(Mac/Window
ERROR ITMS-90542: "Invalid CFBundleSupportedPlatforms value. The key 'CFBundleSupportedPlatforms' in the Info.plist file in bundle 'Payload/Runner.app/Frameworks/alivcffmpeg.framework' contains an invalid value '[iPhoneSimulator]'. Consider removing the CFBundleSupportedPlatforms key from the Info.plist. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue."
“我在秒杀iPhone XS的支付页面卡了3秒,最后没抢到”,用户嘶声力竭地反馈了一个卡顿问题。“莫慌莫慌”,等我打开Android Studio, 用上一讲学到的几个工具分析一下就知道原因了。“咦,在我这里整个支付过程丝滑般流畅”。这个经历让我明白,卡顿跟崩溃一样需要“现场信息”。因为卡顿的产生也是依赖很多因素,比如用户的系统版本、CPU负载、网络环境、应用数据等。脱离这个现场,我们本地难以复现
高并发系统设计的三大目标:高性能、高可用、可扩展
ArrayList和LinkedList在新增、删除元素时,LinkedList的效率要高于 ArrayList,而在遍历的时候,ArrayList的效率要高于LinkedList。
3.1 大话C语言变量和数据类型 在《数据在内存中的存储》一节中讲到: ●计算机要处理的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的形式存放在内存中的; ●我们将8个比特(Bit)称为一个字节(Byte),并将字节作为最小的可操作单元。 我们不妨先从最简单的整数说起,看看它是如何放到内存中去的。
集合线程安全指的是集合本身操作put get是线程安全的,concurrent Hashmap能保证多线程put安全,但不能保证逻辑上两个线程先后get 和 put数据覆盖,数据的稳定安全;
webservice基本概念 简介 webservice即web服务,它时一种跨编程语言和跨操作系统平台的远程调用技术 Java中共有三种Webservice规范,分别是JAX-WS(JAX-RPC),JAXM&&SAAJ,JAX-RS 一三用的比较多 webservice三要素:soap wsdl uddi
JavaWeb JSP,JDBC,单列,TimCat连接池,JSP标签零碎整理
如果你觉得 UITableViewDelegate 和 UITableViewDataSource 这两个协议中有大量方法每次都是复制粘贴,实现起来大同小异,看看这篇文章或许对你有所帮助
一 Servlet概述 servlet= server+applet 运行在服务器端的java小程序。 Servlet是一个接口(规范),一个类要想通过浏览器被访问到,那么这个类就必须直接或间接的实现Servlet接口
Java 是纯粹的面向对象语言,它因统一的字节码文件和差异化的 JDK 而具有平台无关的特性。 Java 内置丰富的类库,使开发者效率大为提升。它支持 web,广泛应用于各大互联网企业的网站后台,像阿里美团都在使用。 Java 的安全性也很出众,通过沙箱安全模型保证其安全性,能够有效防止代码入侵。 Java 也具备很强的健壮性,比如它是强类型的,支持自动化的垃圾回收器,有完善的异常处理机制和安全检查机制。
每一个UIView都有一个CALayer实例的图层属性,我们也可以通过UIView的layer属性访问这个图层。UIView的职责就是创建并管理这个图层,以确保当子视图在层级关系中添加或者被移除的时候,他们关联的图层也同样对应在层级关系树中执行相同的操作。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号