业务耗时及数组

01.关于业务系统耗时信息的处理

A: 常规处理方法:业务开始前取时间点,业务处理完成后取时间点,然后通过二个业务时间点的时间差来获取

B: 优化处理方法:其实D中本来就提供了相关的业务功能供我们使用,只是我们一直不知道而已

a. 定义一个结构对象: sw:TStopWatch;   ==> 引用 System.Diagnostics.pas

b. 直接开始记录: sw :=TStopWatch.StartNew;

c. 结束时:sw.Stop;    d. 取时差: sw.ElapsedMilliseconds; //微秒数

----------------------------------------------

TStopWatch:这是一个会持续监控从Start(或StartNew)被下达之后所耗费的时间(或者系统CPU的周期),

呼叫Stop后,监控就会停止;

02.关于动态数组指针账值与值赋值的问题

A.假定有一个数据 AryA: array of integer;

B. 若新定义一个数组 AryB := AryA;

AryA,AryB二个变量,指向的是同一个内在地址,任何一个对数组做值的处理,都将影响另外一个;

C. 若新定义一个数组 AryC := Copy(AryA,Low(AryA),Length(AryA));

此时AryA,AryC是二份不同的数组,Copy动作是将AryA的值的内容,复制了一份组AryC,

AryA,AryC指向不同的内存地址;

D.数组的遍历

a. for i:= Low(Array) to High(Array) do   --指定数组边界进行循环处理

b. for XX in Array do

--直接使用 in 进行遍历,从 D2007之后才开始

E.数组的新的计算方法

Insert(要插入的新的数组内容,被插入的目标数组,插入位置索引值)

Delete(要删除成中的组组,删除起始索引位置,删除数量)

F.做为开放数组函数或过程的一个参数进行处理

Slice(数组,数量)  --从数组第一个内容开始的指定数量部分做为子数组对象,传递出去

时间: 2024-08-26 04:25:34

业务耗时及数组的相关文章

channelRead对于耗时业务逻辑处理的优化

channelRead对于耗时业务逻辑处理的优化 背景:之前在channelRead中,接收到远端消息进行解码后直接使用了操作数据库这种耗时较久的业务逻辑处理.导致本地netty的工作线程阻塞,会降低可用线程数.另一个对于当前channel的心跳机制也有影响,会导致远端机器长时间接受不到心跳信号,认为这台机器挂掉了... 原始代码 public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { i

Netty版本升级血泪史之线程篇

1. 背景 1.1. Netty 3.X系列版本现状 根据对Netty社区部分用户的调查,结合Netty在其它开源项目中的使用情况,我们可以看出目前Netty商用的主流版本集中在3.X和4.X上,其中以Netty 3.X系列版本使用最为广泛. Netty社区非常活跃,3.X系列版本从2011年2月7日发布的netty-3.2.4 Final版本到2014年12月17日发布的netty-3.10.0 Final版本,版本跨度达3年多,期间共推出了61个Final版本. 1.2. 升级还是坚守老版本

Shuttle ESB(六)——在工程中的应用

假设你可能浏览在前面几篇文章ESB介绍,我相信,在这篇文章中,你会发现很多共鸣. 虽然.市面上开源的ESB确实很之多.像Java中的Mule ESB.Jboss ESB:.Net中的NServiceBus.而Shuttle ESB是一个新兴的开源框架,网络上资源也比較少.我们当初为什么会选用Shuttle ESB呢? 正所谓没有最好.仅仅有更合适.多次调研发现,Shuttle ESB有下面几大长处: 1.Shuttle ESB是基于EDA的: 2.Shuttle ESB的实现以公布订阅为核心:

分布式场景中确保线程安全的解决方案,redis实现分布式锁

实际工作中,经常会遇到多线程并发时的类似抢购的功能,本篇描述一个简单的redis分布式锁实现的多线程抢票功能. 直接上代码.首先按照慣例,給出一個错误的示范: 我们可以看看,当20个线程一起来抢10张票的时候,会发生什么事. package com.tiger.utils; public class TestMutilThread { // 总票量 public static int count = 10; public static void main(String[] args) { sta

JDK9新特性 Reactive Stream 响应式流

JDK9新特性 Reactive Stream 响应式流  本篇主要讲解 JDK9特性 Reactive Stream 响应式流,介绍 Reactive Stream是什么 背压是什么,以及JDK9中提供的关于Reactive Stream的接口和 2个使用案例包括如何使用Processor.  1.Reactive Stream 概念  Reactive Stream (响应式流/反应流) 是JDK9引入的一套标准,是一套基于发布/订阅模式的数据处理规范.响应式流从2013年开始,作为提供非阻

鸵鸟非鸟?

TQ: 有如下定义: Class 鸟{...:public virtual void Fly(){};...} Class 麻雀{...:public virtual void Fly(){...};...} Class 大雁{...:public virtual void Fly(){...};...} ...... 如果是鸵鸟不能飞,就在飞的方法里抛出异常...异常不能算是一种正常编程逻辑吧 XJ 异常并不是一种好的方法 FX·SL 异常是可以的--异常名就是NotImplException

Java多线程Future模式

Java多线程Future模式有些类似于Ajax的异步请求Future模式的核心在于:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑 假设服务器的处理某个业务,该业务可以分成AB两个过程,并且AB两个过程之间不需要彼此的返回结果 A过程需要1秒钟,B过程需要2秒钟,主线程其他操作2秒钟按照正常编写,程序大概需要执行5秒如果按照Future模式只需要执行2秒(取其中运行时间最久的线程的运行时间) Future模式的核心实现在于两个方面 1.多线程运行 主线程采用多线的方

disruptor使用示例

LMAX 开源了一个高性能并发编程框架.可以理解为消费者-生产者的消息发布订阅模式.本文下载了官方示例代码,进行实验. longEvent事件数据 public class LongEvent { private long value; public void set(long value) { this.value = value; } public long get(){ return this.value; } } LongEventFactory事件工厂 import com.lmax.

网站架构之性能优化

网站架构中最核心的几个要素包括:性能,可用性,伸缩性,扩展性和安全性,而性能又是其中最为重要的,本篇简要说下网站性能优化方面所需做的一些事情: 1. 网站性能问题概要 性能问题 说明 产生原因 大都是在用户高并发访问时产生的 主要工作 改善高并发用户访问情况下的网站访问速度 主要目的 改善用户体验,让用户觉得网站很快,一切的产品都必须站在用户的角度考虑问题 2. 网站性能测试 站在不同的视角,所关注的网站性能是不一致的: 视角 关注点 说明 用户视角 用户打开浏览器网页的响应速度,网页能再多长时