小编Joe*_*orn的帖子

你如何强制VB6使用app目录中的DLL和OCX?

我想将我的依赖文件放在app目录中.

我似乎记得你可以强制VB6只使用本地目录中的文件.

任何提示?

vb6 regfreecom

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

技术白皮书:如何写一篇

伙计们,

研究和展示技术白皮书的最佳方法是什么?我不是指格式,概述,部分和类似的东西.

我从来没有写过 - 我想知道白皮书是否需要非常非常通用(概念)或具体(例如支持特定工具/方法)

如果你的回答有利于通用方法,我想知道如何研究它.是否更好地关注较小的用例场景,从小做起,使用特定的工具/方法,获得良好的理解,然后进行更多研究并开发关于该主题的广角视图?

documentation

15
推荐指数
2
解决办法
9220
查看次数

开发人员工具直接访问数据库

我使用几个不同的数据库,发现自己经常尝试连接这些数据库以测试查询.我使用特定于数据库的工具连接到数据库并运行查询.

我发现这些特定于数据库的工具,如SQL查询分析器(SQL-Server),Oracle企业管理器,MySQL查询浏览器,在运行快速查询和直接查看数据时非常笨拙和缓慢.记住开发和测试数据库的所有用户ID和pwd也很难.

您使用哪些工具作为开发人员连接到所选数据库?我使用Eclipse作为IDE.因此,任何Eclipse特定提示也受到赞赏.

即使一个工具与一个DB一起使用而不与另一个DB一起工作,如果它比数据库供应商提供的更加用户友好,我愿意研究它.我已经使用了3种不同的.

mysql database eclipse sql-server oracle

15
推荐指数
2
解决办法
3万
查看次数

性能问题:与String.Format比较

不久之后,Jon Skeet的一篇文章在我的脑海中建立了一个CompiledFormatter类,用于循环而不是使用String.Format().

这个想法是String.Format()花费解析格式字符串的调用部分是开销; 我们应该能够通过将代码移到循环之外来提高性能.当然,诀窍是新代码应该与行为完全匹配String.Format().

本周我终于做到了.我使用了Microsoft提供.Net框架源来直接调整他们的解析器(事实证明String.Format()实际上是将工作集中到了StringBuilder.AppendFormat()).我提出的代码是有效的,因为我的结果在我的(公认有限的)测试数据中是准确的.

不幸的是,我还有一个问题:表现.在我的初始测试中,我的代码的性能与正常情况的性能非常接近String.Format().根本没有改善; 它甚至一直慢几毫秒.至少它仍然处于相同的顺序(即:缓慢的数量不会增加;即使测试集增长,它仍然在几毫秒内),但我希望有更好的东西.

内部调用可能StringBuilder.Append()是实际推动性能的因素,但我想看看这里的聪明人是否可以帮助改进.

以下是相关部分:

private class FormatItem
{
    public int index; //index of item in the argument list. -1 means it's a literal from the original format string
    public char[] value; //literal data from original format string
    public string format; //simple format to use with supplied argument (ie: {0:X} for Hex …
Run Code Online (Sandbox Code Playgroud)

c# string performance

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

C#中的静态变量

在C#中,有没有办法将静态变量放在像VB.Net这样的方法中?

Static myCollection As Collection
Run Code Online (Sandbox Code Playgroud)

c# variables static-variables

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

如何从AD DirectoryEntry获取DOMAIN\USER?

如何从Active Directory DirectoryEntry(SchemaClassName ="user")对象获取Windows用户和域?

用户名在sAMAccountName属性中,但在哪里可以查找域名?

(我不能假设一个固定的域名,因为用户来自不同的子域名.)

.net c# active-directory

15
推荐指数
4
解决办法
4万
查看次数

IT评估编码质量 - 我们如何知道什么是好的?

来自IT背景,我参与过软件项目,但我不是程序员.我最大的挑战之一是拥有大量的IT经验,人们常常转向我来管理包含软件开发的项目.这些项目通常是外包的,并且没有全职架构师或PM的预算,这使我能够评估正在执行的工作.

在过去,我已经设法通过这个,我(有充分理由)对接受这些责任感到不安.

我的问题是,从技术经验而非编程的角度来看,除了确定编码是否有效之外,我如何评估编码是否写得好?是否有方法,技巧,交易技巧,旗帜,标志,任何可以说的东西 - 嘿这是垃圾还是嘿,这真是太棒了?

project-management

15
推荐指数
3
解决办法
625
查看次数

了解VS2010 C#并行分析结果

我有一个程序有很多独立的计算,所以我决定并行化它.

我使用Parallel.For/Each.

双核机器的结果还可以 - 大多数时候CPU利用率约为80%-90%.但是,使用双Xeon机器(即8个内核),我只获得了大约30%-40%的CPU利用率,尽管该程序在并行部分上花费了相当多的时间(有时超过10秒),我看到它使用了与串行部分相比,这些部分中大约有20-30个线程.每个线程需要1秒以上才能完成,所以我认为它们没有理由不能并行工作 - 除非存在同步问题.

我使用了VS2010的内置分析器,结果很奇怪.即使我只在一个地方使用锁,分析器报告大约85%的程序时间用于同步(也是5-7%睡眠,5-7%执行,低于1%IO).

锁定的代码只是一个缓存(字典)get/add:

bool esn_found;
lock (lock_load_esn)
    esn_found = cache.TryGetValue(st, out esn);
if(!esn_found)
{
    esn = pData.esa_inv_idx.esa[term_idx];
    esn.populate(pData.esa_inv_idx.datafile);
    lock (lock_load_esn)
    {
        if (!cache.ContainsKey(st))
            cache.Add(st, esn);
    }
}
Run Code Online (Sandbox Code Playgroud)

lock_load_esn是Object类型的静态成员.
esn.populate使用单独的StreamReader为每个线程从文件中读取.

但是,当我按下同步按钮以查看导致最大延迟的原因时,我看到探查器报告的是作为功能入口线的线,并且不报告锁定的部分本身.
它甚至没有报告包含上述代码的功能(提醒 - 程序中唯一的锁定)作为阻塞配置文件的一部分,噪声级别为2%.当噪音水平为0%时,它会报告程序的所有功能,我不明白为什么它们被视为阻塞同步.

所以我的问题是 - 这里发生了什么?
85%的时间花在同步上怎么样?
如何找出程序中并行部分的实际问题?

谢谢.

更新:深入研究线程(使用极其有用的可视化工具)后,我发现大部分同步时间都花在等待GC线程完成内存分配上,并且由于通用数据结构调整大小操作需要频繁的分配.

我将不得不看看如何初始化我的数据结构,以便它们在初始化时分配足够的内存,可能避免GC线程的这种竞争.

我今天晚些时候会报告结果.

更新:看起来内存分配确实是问题的原因.当我在并行执行的类中使用所有词典和列表的初始容量时,同步问题更小.我现在只有大约80%的同步时间,CPU利用率达到70%(先前的峰值仅为40%左右).

我进一步钻进每个线程,发现现在很多调用GC分配用于分配不属于大字典的小对象.

我通过为每个线程提供一个预先分配的这类对象池来解决这个问题,我使用它而不是调用"new"函数.

所以我基本上为每个线程实现了一个单独的内存池,但是以非常粗糙的方式,这非常耗时,实际上并不是很好 - 我仍然需要使用很多新的来初始化这些对象,只有现在我全局执行一次,即使不得不增加池的大小,GC线程上的争用也会减少.

但这绝对不是我喜欢的解决方案,因为它不容易推广,我不想写自己的内存管理器.
有没有办法告诉.NET为每个线程分配预定义的内存量,然后从本地池中获取所有内存分配?

c# parallel-processing profiling visual-studio-2010

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

Visual Studio 2008 ASP.Net调试僵尸断点在被删除后回来

在调试ASP.Net网站的Visual Studio 2008中,我在代码隐藏页面中设置了一个断点.我刷新页面或提交调用方法,断点被击中.然后我删除断点并继续执行.我对代码隐藏页面进行了更改并保存.我再次提交或刷新,删除的断点又回来了!再次被击中,我再次删除它.我已经尝试删除,禁用,如果我对页面进行更改,它无法继续回来.这是非常烦人和非生产性的.我发现断点永久消失的唯一方法是使用Debug菜单删除所有断点项,这显然不太理想.我已经能够在其他开发者机器上重现这一点.这里发生了什么?这是设计的吗?这是VS中的一个错误吗?如何防止这些僵尸断点复活?

asp.net debugging breakpoints visual-studio-2008

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

Visual Solution Explorer中的实际文件夹?

MS Visual Studio有解决方案资源管理器,我可以看到所有项目文件,我也可以创建过滤器,就像文件夹一样,将它们保存在组中.问题是 - 我希望我的文件在视觉和物理上划分为磁盘组.但我不想在Visual和我的磁盘上同时应用每次更改两次.有没有办法在Visual Solution Explorer中显示实际文件夹,其中我将文件保存在磁盘上(并且没有 - "显示所有文件"不这样做,我刚检查过)?

directory visual-studio

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