小编And*_*rew的帖子

以最快的方式计算包含数十万个文件的目录中的文件数

在solaris系统中处理大量文件并将其信息存储在数据库中(是的,我知道使用数据库是获取有关我们文件数量的信息的最快方法).我需要快速的方法来监视文件,因为它们在通过系统进行存储在数据库中的过程中.

目前,我使用perl脚本将目录读入数组,然后获取数组的大小并将其发送到监视脚本.不幸的是,随着我们系统的发展,这款显示器变得越来越慢.

我正在寻找一种方法,它可以更快地运行,而不是在对所有相关目录执行计数操作后每15-20秒暂停和更新一次.

我相对肯定我的瓶颈是读取目录进入数组操作.

我不需要任何有关文件的信息,我不需要大小或文件名,只需要目录中的文件数.

在我的代码中,我不计算隐藏文件或用于保存配置信息的文本文件.如果保留此功能会很好,但肯定不是强制性的.

我发现了一些使用C代码计算inode的引用或类似的东西,但我在这方面不是很有经验.

我想让这台显示器尽可能实时.

我使用的perl代码如下所示:

opendir (DIR, $currentDir) or die "Cannot open directory: $!";
@files = grep ! m/^\./ && ! /config_file/, readdir DIR; # skip hidden files and config files
closedir(DIR);
$count = @files;
Run Code Online (Sandbox Code Playgroud)

unix directory perl solaris count

8
推荐指数
1
解决办法
8736
查看次数

使"ls"命令在"B"之前排序为"a"(vs a-> b-> A-> B)

我试图找到一种方法,以不区分大小写的方式打印ls命令的结果.

目前ls命令导致:

Apple
Boy
Chart
Dock
apples
boys
charts
docks
Run Code Online (Sandbox Code Playgroud)

我想要的是这个:

Apple
apples
Boy
boys
Chart
charts
Dock
docks
Run Code Online (Sandbox Code Playgroud)

这可能吗?

unix terminal command-line

5
推荐指数
2
解决办法
1万
查看次数

将通用指针传递给c#中的方法

我创建了一个泛型类型作为指针,以便我可以通过引用传递.(也许有一种更简单的方法可以做到这一点,但我想强调,我这样做是为了更多地了解泛型和通过引用传递,而不是完成任务的最有效方法,如果这是有道理的.)

这是我为泛型类型编写的代码

class GenericPointer<T> {
    public T item;
    public void setItem(T i){ item = i; }
    public T getItem(){ return item; }
}
Run Code Online (Sandbox Code Playgroud)

在我的程序中,我创建了一个名为'intPointer'的这种类型的实例.值143是任意的.

GenericPointer<int> intPointer = new GenericPointer<int>();
intPointer.setItem(143);
Console.WriteLine(intPointer.getItem());
Run Code Online (Sandbox Code Playgroud)

上面的代码运行正常,设置并返回值143.

我现在想将这个'intPointer'传递给一个递增它的方法,然后再次打印该值.

所以我写了一个名为addone()的方法

public void addone(int i) { i ++; }
Run Code Online (Sandbox Code Playgroud)

现在我想进行以下调用(记住我已经将值设置为143):

Console.WriteLine(intPointer.getItem());
addone(intPointer);
Console.WriteLine(intPointer.getItem());
Run Code Online (Sandbox Code Playgroud)

我期待看到的是143然后144然而我得到以下错误:

The best overloaded method match for 'Notes.Program.addone(int)' has some invalid arguments
Run Code Online (Sandbox Code Playgroud)

和:

cannot convert from 'Notes.GenericPointer<int>' to 'int'
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

c# generics pointers

2
推荐指数
1
解决办法
1001
查看次数

在perl模块中,子函数后需要分号吗?

我正在编写工作代码,并遇到了一个有趣的问题.我搜索了关于这个主题的资源,但没有找到明确的答案.

在Perl模块中编写子函数时,在结束括号后是否需要分号?

如:

sub printFoo {

print "foo";

};
Run Code Online (Sandbox Code Playgroud)

这是否与常规Perl脚本中的子函数有所不同?

当我在没有分号的模块中使用上述函数时,我得到一个引用"未定义子例程"的错误.

我有信心在过去我使用了类似的代码片段而没有分号后面的分号,但现在我不再积极了.

向正确的方向推进会很棒!

perl module

1
推荐指数
1
解决办法
459
查看次数

Perl不解释ticks中的值,称其为未定义的值

我正在编写一个子程序,使用该XML::Simple模块从配置文件中提取信息.

XML文件具有以下结构

<main>
  <server hostname="blahblah" ... more_attributes="more"/>
  <server etc./>
  <server etc./>
</main>
Run Code Online (Sandbox Code Playgroud)

代码工作正常.它将XML数据按预期放入嵌套哈希中.但是,当我想使用当前系统将一台服务器与其他服务器隔离时,我hostname遇到了问题.

我想这一行

my %systemHash = %{$xmlObject->{SERVER}->{`hostname`}};
Run Code Online (Sandbox Code Playgroud)

应将当前计算机的主机名插入最后一组括号中.但是当执行我得到的代码时

Can't use an undefined value as a HASH reference
Run Code Online (Sandbox Code Playgroud)

xml perl xml-simple

1
推荐指数
1
解决办法
91
查看次数

Oracle SQL缺少逗号错误

我一直盯着这个插入语句和结果ORA-00917: missing comma错误一段时间,似乎无法找到原因.它确实让我觉得我拥有所需的所有逗号.

INSERT INTO Person (PERSONID, FIRSTNAME, LASTNAME, EMAIL, PHONE, STATUS, RECORDSTATUS, INSERTDATE, INSERTEDBY)
values(1, 'Andrew', 'Hayes', 'myemail', '123456789', 'A', 'A', sysdate(), 0);
Run Code Online (Sandbox Code Playgroud)

我不认为这是必要的,但如果它有帮助,这里是架构:

CREATE TABLE PERSON
(
  PERSONID      NUMBER                          NOT NULL,
  FIRSTNAME     VARCHAR2(100 BYTE)              NOT NULL,
  LASTNAME      VARCHAR2(100 BYTE)              NOT NULL,
  EMAIL         VARCHAR2(200 BYTE)              NOT NULL,
  PHONE         VARCHAR2(100 BYTE)              NOT NULL,
  STATUS        VARCHAR2(50 BYTE)               DEFAULT 'A'        NOT NULL,
  RECORDSTATUS  VARCHAR2(50 BYTE)               DEFAULT 'A'        NOT NULL,
  INSERTDATE    DATE                            NOT NULL,
  INSERTEDBY    NUMBER                          NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

sql oracle

1
推荐指数
1
解决办法
278
查看次数

标签 统计

perl ×3

unix ×2

c# ×1

command-line ×1

count ×1

directory ×1

generics ×1

module ×1

oracle ×1

pointers ×1

solaris ×1

sql ×1

terminal ×1

xml ×1

xml-simple ×1