问题列表 - 第21903页

Objective-C,.m/.mm的性能差异?

在创建新类时,我倾向于默认使用.mm扩展名,以便我可以在以后使用ObjC++.

这样做有什么不利吗?你.m什么时候喜欢?并.m编译成可执行更快(这是由于C通常比C++更快)?

iphone objective-c objective-c++

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

ASP.NET C#页面大小是否重要

我正在开发一个基于单个网关页面的asp.net网站,该页面通常处理所有请求和响应.根据发生的情况,网关页面会调用许多类,但主网关页面中有很多代码,分成很多方法.我知道JIT编译器只会在需要时加载和JIT方法,因此我的方法越小越好.但是,我的问题是:如果我在同一个aspx.cs文件中有数千行和数百个方法,那有关系吗?我应该尝试将功能细分为较小的源文件,类和命名空间吗?或者实际上这没有太大的区别,因为.net运行时只会在必要时jit并加载每个方法?我很欣赏人们可能在这里有编码风格的贡献,但我真的很想知道.NET在技术上究竟做了什么,所以我可以根据纯粹的性能标准做出决定.非常感谢.如果我'重构',我期望看到什么样的性能差异?

c# asp.net performance

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

同一个表的MySQL外键失败,错误1005,错误150

mysql> ALTER TABLE category ADD CONSTRAINT category_parent_category_id FOREIGN KEY (parent) REFERENCES category(id);
ERROR 1005 (HY000): Can't create table 'sfnews.#sql-244_1' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

DDL如下:

Create Table: CREATE TABLE `category` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `parent` bigint(20) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `parent_idx` (`parent`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

为什么这是错的?

mysql foreign-keys mysql-error-1005

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

我应该使用php引号转义为单引号还是在数组中使用双引号?

我意识到我可以在php数组中出现单引号问题:

<?php
$lang = array(
    'tagline' => 'Let's start your project',
    "h1" => "About Me"
);
?>
Run Code Online (Sandbox Code Playgroud)

所以我把它改为双引号:

<?php
$lang = array(
    "tagline" => "Let's start your project",
    "h1" => "About Me"
);
?>
Run Code Online (Sandbox Code Playgroud)

我应该使用"php quote escapes"而不是我刚刚做的吗?(顺便说一下怎么写"php quote escapes"?)

php arrays quotes

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

如何为每个文件系统观察程序分配单独的线程?

我正在开发一个数据库文件系统.它包括一个多目录观察器,它是一个Windows服务,它使用.net 的文件系统观察者类.

我想在单独的线程上运行每个观察者类.线程不能在.net中扩展,因为它是"密封"的.我想要的是,在相关的线程中运行我的观察者类的所有方法.我怎样才能做到这一点?

编辑 -

以下是我的基础守望者课程.

 public abstract class WatcherBase
  {
    private IWatchObject _watchObject;

    public WatcherBase() { }

    public WatcherBase(IWatchObject watchObject, bool canPauseAndContinue)
    {
        _watchObject = watchObject;
        CanPauseAndContinue = canPauseAndContinue;
    }

    public bool CanPauseAndContinue { get; set; }

    public IWatchObject ObjectToWatch
    {
        get
        { 
            return _watchObject; 
        }
    }

    public abstract void Start();
    public abstract void Pause();
    public abstract void Continue();
    public abstract void Stop();
}
Run Code Online (Sandbox Code Playgroud)

以下是我从WatcherBase类扩展的目录观察者类

  namespace RankFs.WatcherService
  {
    public class DirectoryWatcher : WatcherBase
    {
    private …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading windows-services filesystemwatcher

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

优雅的线程终止与pthread_cond_signal证明有问题

我需要解雇一堆线程,并希望优雅地降低它们.

我正在尝试使用pthread_cond_signal/ pthread_cond_wait来实现这一点,但遇到了问题.

这是我的代码.首先是thread_main

static void *thrmain( void * arg )
{
    // acquire references to the cond var, mutex, finished flag and
    // message queue
    .....

    while( true )
    {
        pthread_mutex_lock( &lock );

        if ( msq.empty() )
        {
            // no messages so wait for one.
            pthread_cond_wait( &cnd, &lock );
        }

        // are we finished.
        if ( finished )
        {
            // finished so unlock the mutex and get out of here
            pthread_mutex_unlock( &lock );
            break;
        }

        if …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mutex pthreads

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

如何在java程序中禁用堆栈跟踪生成?

我想禁用在抛出异常时生成的堆栈跟踪.我用过,

Runtime.getRuntime().traceInstructions(false);
Runtime.getRuntime().traceMethodCalls(false);
Run Code Online (Sandbox Code Playgroud)

但我仍然可以看到跟踪生成.你怎么能这样做?此外,我需要检测是否有人正在调试我的课程.

我想禁用所有异常跟踪.我不能使用混淆,因为我的产品是一个将用于开发的SDK.我还提供了Runtime,当人们想要部署使用我的SDK构建的应用程序时,会使用它.我的要求是任何使用我的运行时jar的人都不应该能够调试编写的代码...或者至少我会通过避免从我的运行时jar生成堆栈跟踪来使调试变得困难.

我发现的一种方法是所有来自我的运行时jar的异常,我只是捕获它们并在异常对象上设置一个空的StackTraceElement数组并重新抛出它...

为何如此要求?假设您使用我的SDK开发应用程序.(SDK jar无法与您的应用程序捆绑在一起..我已经限制了它,那就是最终:) !!)现在要在客户端的机器上运行您的应用程序,您(或客户端)需要安装客户端计算机上的运行时并运行您的应用程序.现在如果你的客户使用我的Runtime jar开始开发他自己的应用程序怎么办 这对我的生意构成威胁....这就是为什么这个可怕的要求.

为什么禁用堆栈跟踪?
通过禁用堆栈跟踪生成或方法调用跟踪生成我想用我的Runtime jar开发代码很困难,这就是为什么我以这种方式开始我的问题...建议一些其他解决方案来实现这样的要求......

java debugging stack-trace

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

我可以从该字典的枚举循环中删除ConcurrentDictionary中的项吗?

例如:

ConcurrentDictionary<string,Payload> itemCache = GetItems();

foreach(KeyValuePair<string,Payload> kvPair in itemCache)
{
    if(TestItemExpiry(kvPair.Value))
    {   // Remove expired item.
        Payload removedItem;
        itemCache.TryRemove(kvPair.Key, out removedItem);
    }
}
Run Code Online (Sandbox Code Playgroud)

显然,对于普通的Dictionary,这将引发异常,因为删除项会在枚举的生命周期中更改字典的内部状态.我的理解是,并非ConcurrentDictionary的情况,因为提供的IEnumerable处理内部状态更改.我明白了吗?有更好的模式可供使用吗?

.net concurrency parallel-extensions

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

Tomcat中的常见JNDI资源

我在Tomcat(5.5)中运行了几个servlet应用程序.所有servlet都使用通过JNDI共享的公共工厂资源.目前,我可以通过在/conf/server.xml文件中将工厂资源包含为GlobalNamingResource来使一切正常工作,然后让每个servlet的META-INF/context.xml文件包含资源的ResourceLink.XML文件中的代码段包含在下面.注意:我对tomcat并不熟悉,所以我不是说这是一个很好的配置!

但是,我现在希望能够使用RPM自动将这些servlet安装到多个tomcat实例中.RPM将首先将WAR复制到webapps目录,将工厂的jar复制到common/lib目录(这很好).但它还需要确保将工厂资源作为所有servlet的资源包含在内.

全局添加资源的最佳方法是什么?我不太热衷于编写一个进入server.xml文件的脚本,并以这种方式添加资源.有没有办法让我添加多个server.xml文件,以便我可以编写一个新的server-app.xml文件,它会将我的设置连接到server.xml?或者,最好还是将这个JNDI资源添加到所有servlet而不使用server.xml?

ps重新启动服务器不会是一个问题,所以我不介意更改是否自动获取.

谢谢

来自server.xml的代码段

  <!-- Global JNDI resources -->
  <GlobalNamingResources>

  <Resource name="bean/MyFactory"
                auth="Container"
                type="com.somewhere.Connection"
                factory="com.somewhere.MyFactory"/> 
  </GlobalNamingResources> 
Run Code Online (Sandbox Code Playgroud)

整个servlet的META-INF/context.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <ResourceLink global="bean/MyFactory"
                name="bean/MyFactory"
                type="com.somewhere.MyFactory"/>
  </Context>
Run Code Online (Sandbox Code Playgroud)

java resources tomcat jndi

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

从Java 1.4到Java 6:任何更新遗留代码的自动化工具?

我们的系统将进行平台升级,包括用Java 6替换Java 1.4.

理想情况下,我们希望使用自动化工具在可能的情况下向代码中引入泛型和枚举,然后,显然,我们会检查更改.你有什么工具可以推荐吗?

java

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