翻看别人的测试Groovy文章引起灵感,测试了一下Groovy中三种Loop的性能
def testForIn(){
def start = System.currentTimeMillis();
int i=0
for (int x in 1..10000) {
for (int y in 1..1000) {
//i+=y
}
}
println System.currentTimeMillis() - start
println i
}
def testRangeEach(){
def start = System.currentTimeMillis();
int i=0
(1..10000).each{x->
(1..1000).each{y->
// i+=y
}
}
println System.currentTimeMillis() - start
println i
}
def testOldJavaLoop(){
def start = System.currentTimeMillis();
int i=0
for(int x= 1;x<=10000;x++) {
for(int y=1;y<=1000;y++) {
// i=i+y;
}
}
println System.currentTimeMillis() - start
println i
}
testForIn()
testRangeEach()
testOldJavaLoop()
结果:
563
0
3469
0
4109
0
分享到:
相关推荐
- `divide_loop.groovy` 可能涉及循环控制,Groovy支持for、while等循环结构,以及增强的for-each循环。 4. **目录操作**:`directory_01.groovy` 可能包含了处理文件系统目录的代码,Groovy提供了一系列的类和...
不必要的向导Groovy 可配置 DI 容器灵活的依赖注入,可通过 groovy 代码进行配置。 一个简单的领域特定语言 (DSL) 使连接您的应用程序就像编写一个 For-Loop 来总结整数列表一样简单。 想尝尝吗? injector { // The...
这个库的核心思想是使用协程(coroutines)和事件循环(event loop),它们在非阻塞 I/O 操作中特别有用,能够避免传统的回调地狱问题。 在 PHP 中使用 `parallel-functions`,首先需要安装相应的库,这可以通过 ...
- **数据源循环(DataSource Loop)**:对数据源中的每一项进行循环测试。 - **JDBC请求数据源(JDBC Request DataSource)**:直接通过数据库查询获取测试数据。 - **数据源连接(DataConnection)** - **数据源(JDBC)*...
该规范是一组嵌套的Groovy函数调用: indentstack( 10 , line(opt( ' - ' ), choice( ' 0 ' , line( ' 1-9 ' , loop( None , ' 0-9 ' ))), opt( ' . ' , loop( ' 0-9 ' , None ))), line(opt(choice( ' e ' , '...
- **Test Step**:具体执行的操作,如SOAP请求、Groovy脚本、属性、属性转移和数据接收等。 ### 2.1 Request 创建请求的方式是将WSDL或WADL文件导入到项目中,这将自动生成SOAP请求样本。这些请求可以被转化为测试...
与Node.js相比,Vert.x更加灵活,因为它支持多种编程语言如JavaScript、Ruby、Groovy、Java等,甚至可以在同一项目中混合使用这些语言。 #### 二、Vert.x的核心概念 为了更好地理解Vert.x的线程模型,我们首先需要...
Java Shell 还提供了一个 REPL(Read-Eval-Print Loop)环境,允许用户实时查看执行结果。Java Shell 支持多种语言模式,包括 Java、Groovy、Scala 等。 在 Java Shell 中,用户可以使用各种命令来执行不同的操作。...
- **Lisp Features**: Discussion on Clojure's Lisp heritage, including macros and the REPL (read-eval-print loop), which enable rapid prototyping and experimentation. #### PART 4: CRAFTING THE ...
Netty的核心是基于NIO(非阻塞I/O)和EventLoop事件驱动模型,这使得它能够在单线程或多线程环境下高效地处理大量并发连接。 1. **异步I/O**:Netty采用非阻塞I/O模型,允许在等待I/O操作完成时执行其他任务,从而...
与Node.js相比,Vert.x提供了更多的语言支持,包括Java、JavaScript、Ruby、Groovy和 Kotlin,同时利用了Java虚拟机(JVM)的优势。 【描述】提到"比Node.Js更快",这可能是因为Vert.x利用了JVM的并发模型,如Event...
```groovy dependencies { implementation 'com.wonderkiln:androidimagemagick:0.2.1' } ``` 接下来,我们需要编写代码来实现MP4到GIF的转换。这里以`Android-ImageMagick`为例,提供一个基本的转换函数: ```...
```groovy dependencies { implementation 'com.airbnb.android:lottie:2.0.0' } ``` 注意,Lottie库要求Android API级别14或更高。 b. XML布局加载:在XML布局文件中,使用LottieView来加载动画。例如: `...
其中,最重要的特性包括HTTP客户端API的增强、模块化系统的完善、JShell(也称为REPL,Read-Eval-Print Loop)的改进以及对JVM内存管理的优化等。Java 11旨在提高开发效率、增强性能并保持向后兼容性。 Gradle是一...
- **表达式语言**:Struts1.x不支持嵌入式语言(EL),而Struts2.0则支持多种表达式语言,包括OGNL(Object-Graph Navigation Language)、JSTL、Groovy以及Velocity等。 #### 三、非UI标签详解 ##### 3.1 if、...
```groovy dependencies { implementation 'com.airbnb.android:lottie:版本号' } ``` 加载 JSON 文件时,可以使用 `LottieAnimationView` 或 `LottieDrawable` 类。下面是一个简单的示例: ```java ...
3. **动态类型语言支持**:JDK 11增加了对动态类型语言的支持,如Groovy和JavaScript,通过JEP 335(JShell Repl Improvements)改进了JShell(也称为REPL,Read-Eval-Print Loop)。 4. **文本块**:JEP 326(Text...
```groovy dependencies { implementation 'com.airbnb.android:lottie:版本号' // 替换为最新版本号 } ``` 然后,同步项目,Lottie库就会被引入到你的Android Studio项目中。 接下来,你可以创建一个`...