`
yajie
  • 浏览: 213625 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一段耗CPU的随机生成字符串的代码,why?

阅读更多

感兴趣的同学可以把下面的代码copy到机器上执行看看(例如java GenRandomStringTest 50 100 1024),会发现是挺耗CPU的,原因是什么呢? 有什么建议吗?

GenRandomStringTest代码如下,也可从这下载

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.Random;
 
public class GenRandomStringTest {
 
public static void main(String[] args) throws Exception{
int threadNums = Integer.parseInt(args[ 0 ]);
int keySize = Integer.parseInt(args[ 1 ]);
int valueSize = Integer.parseInt(args[ 2 ]);
for ( int i = 0 ; i < threadNums; i++) {
new Thread( new Test(keySize,valueSize)).start();
}
}
 
}
 
class Test implements Runnable{
 
private Random rand = new Random();
 
private int keySize = 0 ;
private int valueSize = 0 ;
 
public Test( int keySize, int valueSize){
this .keySize = keySize;
this .valueSize = valueSize;
}
 
public void run() {
while ( true ){
RandomStringUtils.generateBytes(keySize);
RandomStringUtils.generateBytes(valueSize);
try {
Thread.sleep(rand.nextInt( 2 ));
}
catch (Exception e){
// IGNORE;
}
}
}
 
}

RandomStringUtils代码如下,由于blog渲染有问题,会丢失代码,只好截图如下了,也可从这下载

ps: 不过话说以这种方式随机生成指定大小的字符串还是挺耗时的,也欢迎提供建议,:).

 

源码如下:

 

import java.util.Random;

public class RandomStringUtils {

        private static final String KEY_SEED="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

        private static final int KEY_SEED_LEN=KEY_SEED.length();

        private static final char[] KEY_SEED_CHARS=KEY_SEED.toCharArray();

        private static Random random = new Random();

        public static byte[] generateBytes(int length){
                StringBuilder keyBuilder=new StringBuilder(length);
                for (int i = 0; i < length; i++) {
                    keyBuilder.append(KEY_SEED_CHARS[random.nextInt(KEY_SEED_LEN)]);
                }
                return keyBuilder.toString().getBytes();
        }

}
分享到:
评论

相关推荐

    随机生成32位字符串

    在这个场景中,"随机生成32位字符串"是一个常见的需求,例如在创建唯一标识符、生成安全密码或进行加密算法时。下面将详细介绍如何在VB中实现这一功能。 首先,我们要了解VB中的字符串是由一系列字符组成的,每个...

    C#随机字符串生成代码

    在C#编程语言中,生成随机字符串是一项常见的任务,它在许多应用场景中都有用到,例如测试数据的生成、密码的生成以及唯一标识符的创建等。本篇将深入探讨如何在C#中生成指定长度、包含字母或数字或者两者的混合随机...

    C# 生成随机字母字符串

    以下是一个简单的示例代码,用于生成随机大小写字母字符串: ```csharp using System; public static string GenerateRandomString(int length) { Random random = new Random(); const string chars = ...

    php 随机生成10位字符代码

    在这段代码中,最后使用`echo`语句调用`randStr(10)`来输出一个10位的随机字符串。` `标签用于换行,以便在浏览器中显示清晰的输出结果。 从这段代码中,我们可以提炼出几个关键知识点: 1. `rand()`函数:在...

    正则表达式随机生成字符串工具

    而“正则表达式随机生成字符串工具”则是一个能够根据预设的正则规则,自动生成符合该规则的随机字符串的实用程序。 这个工具的核心功能在于其灵活性和多样性。通过定义不同的正则表达式,用户可以生成各种类型的...

    Java根据正则表达式生成字符串—Xeger,automaton

    使用Xeger的好处在于,生成的字符串不仅满足正则表达式的要求,还具有一定的随机性,这对于测试和代码覆盖率提升非常有用。下面是一个简单的使用Xeger的例子: ```java import org.pcollections.Xeger; public ...

    aotu.js 字符串指定字符 随机生成出汉字

    总之,`aotu.js`的字符串指定字符随机生成汉字的功能,结合JavaScript的字符串和数学操作,为前端开发者提供了一种强大的工具,用于创建动态和多样化的汉字内容。在实际应用中,它可以帮助提高引流脚本的效果,增加...

    生成随机字符串(字符串,数字)

    总的来说,生成随机字符串和数字在C#编程中是一项基础且实用的技能。通过掌握`Random`类的使用和字符串操作,你可以轻松应对各种需求,无论是简单的测试数据填充还是复杂的安全性要求。在Visual Studio 2008中,这些...

    随机字符串生成器.exe

    本工具用于生成随机字符串,可以自定义字符池及字符串长度。欢迎下载使用! 本工具用于生成随机字符串,可以自定义字符池及字符串长度。欢迎下载使用!

    js随机生成32位字符串

    js随机生成32位字符串 包含大小写

    根据正则表达式生成随机字符串

    根据java正则表达式生成一个随机的字符串,具体可以去一下网站看:https://code.google.com/p/xeger/

    Java随机字符串生成器,可用于生成随机密码,密约等场景,支持字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置)

    Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...

    易语言快速取随机字符

    2. 初始化一个空字符串作为结果,用于存放生成的随机字符。 3. 根据需求设置循环次数,如取十万个字符,就设置循环100000次。 4. 在每次循环中,生成一个随机数,根据这个随机数的范围选择对应的字符集。 5. 使用...

    随机字符串生成器

    为了实现这样的功能,开发者通常会编写一段代码,结合.NET Framework提供的API,例如使用Random类的Next方法生成随机整数,再结合Char结构的转换方法将数字映射到字符。同时,可能还会用到String类的构造函数来组合...

    生成随机字符串的方法

    此方法是最常见的一种生成随机字符串的方式,它首先定义一个包含所有可能字符的字符串池,然后通过随机数生成器从中选择字符来构建随机字符串。 **代码示例:** ```java public String make() { String radStr = ...

    java语言产生随机字符串代码正确版.txt

    java语言产生随机字符串代码正确版.txt

    易语言取随机字符源码.7z

    这个压缩包文件“易语言取随机字符源码.7z”包含的就是关于这一功能的源代码,可以帮助我们理解易语言如何实现随机字符生成。 在易语言中,生成随机字符通常涉及以下几个关键知识点: 1. **随机数生成**:首先,...

    随机字符串自动生成器

    随机字符串自动生成器是一种工具,它能够根据用户设定的参数快速地创建一系列随机字符串。在IT行业中,这种工具被广泛应用于各种场景,如密码生成、数据填充、测试用例的创建以及安全令牌的生成等。下面我们将深入...

Global site tag (gtag.js) - Google Analytics